AES加密解密方法

2021-08-13 20:53:32 字數 2005 閱讀 8960

aes加密解密方法

/**

* 加密方法

*@param data 要加密的資料

*@param key 加密key

*@param iv 加密iv

*@return 加密的結果

*@throws exception

*/public

static string aesencode(string data, string key, string iv,string type) throws exception

//根據指定的"演算法/模式/補碼方式",獲取密碼器

cipher cipher = cipher.getinstance(type);//"演算法/模式/補碼方式"

int blocksize = cipher.getblocksize();

byte databytes = data.getbytes();

int plaintextlength = databytes.length;

if (plaintextlength % blocksize != 0)

byte plaintext = new

byte[plaintextlength];

system.arraycopy(databytes, 0, plaintext, 0, databytes.length);

secretkeyspec keyspec = new secretkeyspec(key.getbytes(), "aes");

ivparameterspec ivspec = new ivparameterspec(iv.getbytes());

cipher.init(cipher.encrypt_mode, keyspec, ivspec);

byte encrypted = cipher.dofinal(plaintext);

system.out.println("databytes : "+bytestring.of(databytes).hex());

system.out.println("plaintext : "+bytestring.of(plaintext).hex());

system.out.println("encrypted : "+bytestring.of(encrypted).hex());

return

new string(base64.encode(encrypted));

} catch (exception e)

}/**

* 解密方法

*@param data 要解密的資料

*@param key 解密key

*@param iv 解密iv

*@return 解密的結果

*@throws exception

*/public

static string aesdecode(string data, string key, string iv ,string type) throws exception

byte encrypted1 = new base64().decode(data);

cipher cipher = cipher.getinstance(type);

secretkeyspec keyspec = new secretkeyspec(key.getbytes(), "aes");

ivparameterspec ivspec = new ivparameterspec(iv.getbytes());

cipher.init(cipher.decrypt_mode, keyspec, ivspec);

byte original = cipher.dofinal(encrypted1);

string originalstring = new string(original);

return originalstring;

} catch (exception e)

}

Aes加密解密

加密時 先對string進行utf8解析成陣列 對陣列進行加密 對加密結果用base64解析成string。那麼揭秘時,對字串的解析方式是必須要 倒 過來的,就成這樣子了 解密時 先對string進行base64解析成陣列 對陣列進行解密 對解密結果用utf8解析成string using syst...

AES加密解密詳解

一 什麼是aes?高階加密標準 英語 advanced encryption standard,縮寫 aes 是一種區塊加密標準。這個標準用來替代原先的des,已經被多方分析且廣為全世界所使用。那麼為什麼原來的des會被取代呢,原因就在於其使用56位金鑰,比較容易被破解。而aes可以使用128 19...

C 加密解密 AES

using system namespace encrypt aes解密 需要解密字串 解密後字串 public static string decrypt string str aes加密 需要加密的字串 32位金鑰 加密後的字串 public static string encrypt stri...