前端AES加密解密,以及配套的后端加密解密
AES全称高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法。
前端加密解密
// 引入JS
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js" integrity="sha512-E8QSvWZ0eCLGk4km3hxSsNmGWbLtSCSUcewDQPQWZF6pEU8GlT8a5fF32wOl1i8ftdMhssTrF/OhyGWwonTcXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
/*加密*/
function aesEncode(str,key) {
key = CryptoJS.enc.Utf8.parse(key);
var encryptedData = CryptoJS.AES.encrypt(str, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encryptedData.toString(); // 这里返回是Base64字符串
}
/*解密*/
function aesDecode(encryptedStr,key) {
key = CryptoJS.enc.Utf8.parse(key);
var encryptedHexStr = CryptoJS.enc.Base64.parse(encryptedStr);
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decryptedData.toString(CryptoJS.enc.Utf8);
}
后端加密解密
添加封装的依赖hu-tool
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.22</version>
</dependency>
// 构建AES加密工具
SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, "qeNm3eXK/BCAwTVoEjfaGQ==".getBytes(StandardCharsets.UTF_8));
//加密
// 如果需要转为和前端显示一样的数据,这里需要把这个返回内容转为Base64字符串
byte[] encrypt = aes.encrypt(content);
//解密
byte[] decrypt = aes.decrypt(encrypt);
//解密为字符串
String decryptStr = aes.decryptStr(encrypt, CharsetUtil.CHARSET_UTF_8);
封面
前端AES加密解密,以及配套的后端加密解密
https://wangijun.com/2022/05/23/java-15/