這個演算法java SDK自帶的額 參考代碼如下:
/**解密
*@paramcontent待解密內容
*@parampassword解密密鑰
*@return
*/
publicstaticbyte[]decrypt(byte[]content,Stringpassword){
try{
KeyGeneratorkgen=KeyGenerator.getInstance("AES");
kgen.init(128,newSecureRandom(password.getBytes()));
SecretKeysecretKey=kgen.generateKey();
byte[]enCodeFormat=secretKey.getEncoded();
SecretKeySpeckey=newSecretKeySpec(enCodeFormat,"AES");
Ciphercipher=Cipher.getInstance("AES");//創建密碼器
cipher.init(Cipher.DECRYPT_MODE,key);//初始化
byte[]result=cipher.doFinal(content);
returnresult;//加密
}catch(NoSuchAlgorithmExceptione){
e.printStackTrace();
}catch(NoSuchPaddingExceptione){
e.printStackTrace();
}catch(InvalidKeyExceptione){
e.printStackTrace();
}catch(IllegalBlockSizeExceptione){
e.printStackTrace();
}catch(BadPaddingExceptione){
e.printStackTrace();
}
returnnull;
}
/**
*加密
*
*@paramcontent需要加密的內容
*@parampassword加密密碼
*@return
*/
publicstaticbyte[]encrypt(Stringcontent,Stringpassword){
try{
KeyGeneratorkgen=KeyGenerator.getInstance("AES");
kgen.init(128,newSecureRandom(password.getBytes()));
SecretKeysecretKey=kgen.generateKey();
byte[]enCodeFormat=secretKey.getEncoded();
SecretKeySpeckey=newSecretKeySpec(enCodeFormat,"AES");
Ciphercipher=Cipher.getInstance("AES");//創建密碼器
byte[]byteContent=content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE,key);//初始化
byte[]result=cipher.doFinal(byteContent);
returnresult;//加密
}catch(NoSuchAlgorithmExceptione){
e.printStackTrace();
}catch(NoSuchPaddingExceptione){
e.printStackTrace();
}catch(InvalidKeyExceptione){
e.printStackTrace();
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}catch(IllegalBlockSizeExceptione){
e.printStackTrace();
}catch(BadPaddingExceptione){
e.printStackTrace();
}
returnnull;
}
http://blog.csdn.net/hbcui1984/article/details/5201247
圖像界面的話就不說了
2. 如何對java請求的@requestbody前端加密後端解密
為確保前後端數據安全傳輸,本文將介紹如何在使用Spring Boot項目時,對通過@RequestBody接收的前端數據進行AES加密與後端解密的實現過程。首先,需要在Vue項目中引入`axios`和`crypto-js`兩個庫,其中`axios`用於發送請求,`crypto-js`用於加密和解密數據。
在Vue項目中創建`secret.js`文件,並編寫如下代碼:
在發送請求時,前端已准備好加密後的數據,並同時向後端發送請求。注意以下幾點:
在後端處理加密數據時,使用`hutool`工具包進行解密。
實驗結果顯示,前端與後端之間數據交換順暢,且加密與解密過程准確無誤。請嘗試使用以下鏈接快速學習Spring Boot 3.x實戰技術:
此外,推薦以下高質量的學習資源:
3. JAVA使用AES/CBC/PKCS5方式加密的內容,怎樣在C#下解密
java和C#只是語言,AES這些是演算法,所以和語言沒太大關系,
JAVA加密的「1」和c#加密的「1」結果是一樣的,解密出來也是一樣的。
///<summary>
///AES解密
///</summary>
///<paramname="cipherText">密文字元串</param>
///<returns>返回明文字元串</returns>
publicstaticstringAESDecrypt(stringshowText)
{
byte[]cipherText=Convert.FromBase64String(showText);
SymmetricAlgorithmdes=Rijndael.Create();
des.Key=Encoding.UTF8.GetBytes(Key);
des.IV=_key1;
byte[]decryptBytes=newbyte[cipherText.Length];
using(MemoryStreamms=newMemoryStream(cipherText))
{
using(CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Read))
{
cs.Read(decryptBytes,0,decryptBytes.Length);
cs.Close();
ms.Close();
}
}
returnEncoding.UTF8.GetString(decryptBytes).Replace("