// AES-128-CBC偏移量(和后端java保持一致) const KEY = "9c4870b0bbcadfa2"; //加密 function encrypt(data) { // data = CryptoJS.MD5("copyright." + data + "pms@2016").toString(); let key = CryptoJS.enc.Utf8.parse(KEY); let secretData = CryptoJS.enc.Utf8.parse(data); let encrypted = CryptoJS.AES.encrypt( secretData, key, { iv: CryptoJS.enc.Utf8.parse(KEY), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 } ); return encrypted.toString(); } // //解密 // function decrypt(data) { // let key = CryptoJS.enc.Utf8.parse(KEY); // let decrypt = CryptoJS.AES.decrypt( // data, // key, // { // iv: CryptoJS.enc.Utf8.parse(KEY), // mode: CryptoJS.mode.CBC, // padding: CryptoJS.pad.Pkcs7 // }); // return CryptoJS.enc.Utf8.stringify(decrypt).toString(); // } /** * AES 加密函数 * @param {String} plainText 要加密的明文 * @param {String} secret 随机密钥 * @returns {String} 密文 */ function aesEncrypt(plainText, secret) { const key = CryptoJS.enc.Utf8.parse(secret); const iv = CryptoJS.enc.Utf8.parse(KEY); const result = CryptoJS.AES.encrypt(plainText, key, { iv }); return CryptoJS.enc.Base64.stringify(result.ciphertext); } /** * AES 解密函数 * @param {String} cipherBase64 加密后的密文(UrlSafeBase64) * @param {String} secret 随机密钥 * @returns {String} 明文 */ function aesDecrypt(cipherBase64, secret) { const key = CryptoJS.enc.Utf8.parse(secret); const iv = CryptoJS.enc.Utf8.parse(KEY); const result = CryptoJS.AES.decrypt(cipherBase64, key, { iv }); return CryptoJS.enc.Utf8.stringify(result); }