最開始使用的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值,需前后端統一。
【完】
什么都經不住千錘百煉(源自良凌羅)