前端AES加密解密,以及配套的后端加密解密

本文最后更新于:3 个月前

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/
作者
无良芳
发布于
2022年5月23日
许可协议