参看官网文档,AES方法是支持AES-128、AES-192和AES-256的,加密过程中使用哪种加密方式取决于传入key的类型,否则就会按照AES-256的方式加密。
由于CryptoJS生成的密文是一个对象,如果直接将其转为字符串是一个Base64编码过的,在encryptedData.ciphertext上的属性转为字符串才是后端需要的格式。
代码:
var CryptoJS = require("crypto-js");
var key ="aaaabbbbccccddddeeeeffffgggghhhh"; // 密钥
var iv = "1234567812345678";
// 加密
function encrypt(text){
return CryptoJS.AES.encrypt(text,CryptoJS.enc.Utf8.parse(key),{
iv:CryptoJS.enc.Utf8.parse(iv),
mode:CryptoJS.mode.CBC,
padding:CryptoJS.pad.Pkcs7
})
}
// 解密
function decrypt(text){
var result = CryptoJS.AES.decrypt(text,CryptoJS.enc.Utf8.parse(key),{
iv:CryptoJS.enc.Utf8.parse(iv),
mode:CryptoJS.mode.CBC,
padding:CryptoJS.pad.Pkcs7
})
return result.toString(CryptoJS.enc.Utf8)
}
var text="你好";
var encoded=encrypt(text)
console.log(encoded.toString());
console.log(decrypt(encoded))
参考链接:https://blog.csdn.net/qq_40140218/article/details/86032802