AES加密
import CryptoJS from 'crypto-js' // 默认的 KEY 与 iv 如果没有给 const KEY = CryptoJS.enc.Utf8.parse('0102030405060708') const IV = CryptoJS.enc.Utf8.parse('0102030405060708') export default { /** * AES加密 :字符串 key iv 返回base64 */ encrypt(word, keyStr, ivStr) { let key = KEY let iv = IV if (keyStr) { key = CryptoJS.enc.Utf8.parse(keyStr) iv = CryptoJS.enc.Utf8.parse(ivStr) } let srcs = CryptoJS.enc.Utf8.parse(word) var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }) return CryptoJS.enc.Base64.stringify(encrypted.ciphertext) }, /** * AES 解密 :字符串 key iv 返回base64 * * @return {string} */ decrypt(word, keyStr, ivStr) { //解决java返回加密内容存在折行符问题 word = word = (word + '').replace(/\n*$/g, '').replace(/\n/g, '') let key = KEY let iv = IV if (keyStr) { key = CryptoJS.enc.Utf8.parse(keyStr) iv = CryptoJS.enc.Utf8.parse(ivStr) } let base64 = CryptoJS.enc.Base64.parse(word) let src = CryptoJS.enc.Base64.stringify(base64) let decrypt = CryptoJS.AES.decrypt(src, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }) let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8) console.log(decryptedStr) return decryptedStr.toString() } }
在线工具:http://tool.chacuo.net/cryptaes
encrypt设置属性为上图配置属性