最开始使用的aes-js的npm包,后来发现npm上面那个包只能加密16个长度的字节,非16个长度的字符串就会报错,后来使用的是crypto-js,
AES总共有四种加密方式,我们使用的CBC方式:
var CryptoJS = require("crypto-js"); //解密方法 function Decrypt(word) { var key = CryptoJS.enc.Utf8.parse("XXXXXXXXXXXX"); var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return CryptoJS.enc.Utf8.stringify(decrypt).toString(); } //加密方法 function Encrypt(word) { var key = CryptoJS.enc.Utf8.parse("XXXXXXXXXXXX"); var srcs = CryptoJS.enc.Utf8.parse(word); var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return encrypted.toString(); } export { Decrypt, Encrypt }
这个代码是配合后端java的AES加密解密,上面的XXXXXXXXXXXX是加解密的Key值,需前后端统一。
【完】
什么都经不住千锤百炼(源自良凌罗)