安装crypto-js插件:npm install crypto-js
const CryptoJS = require('crypto-js') // const key = CryptoJS.enc.Utf8.parse('abcdefgabcdefg12') // 十六位十六进制数作为密钥 /* 加密 * @param word * @returns {*} */ // function encrypt(word) { // // var iv = CryptoJS.lib.WordArray.random(128 / 8).toString(CryptoJS.enc.Hex); // var key = CryptoJS.enc.Utf8.parse('abcdefgabcdefg12') // var srcs = CryptoJS.enc.Utf8.parse(word) // // var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }) // var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) // return encrypted.toString() // } function encrypt(word, keyStr, ivStr) { keyStr = keyStr || 'w1w3wwwwwwwwwww2w1w3wwwwwwwwwww2' ivStr = ivStr || '1234567890123456' const keys = CryptoJS.enc.Utf8.parse(keyStr) const iv = CryptoJS.enc.Utf8.parse(ivStr) const srcs = CryptoJS.enc.Utf8.parse(word) const encrypted = CryptoJS.AES.encrypt(srcs, keys, { iv, mode: CryptoJS.mode.CBC, // padding: CryptoJS.pad.ZeroPadding padding: CryptoJS.pad.Pkcs7 }) return encrypted.toString() } /** * 解密 * @param word * @returns {*} */ // function decrypt(word) { // // var iv = CryptoJS.lib.WordArray.random(128 / 8).toString(CryptoJS.enc.Hex); // var key = CryptoJS.enc.Utf8.parse('abcdefgabcdefg12') // // var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }) // var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) // return CryptoJS.enc.Utf8.stringify(decrypt).toString() // } function decrypt(word, keyStr, ivStr) { keyStr = keyStr || 'w1w3wwwwwwwwwww2w1w3wwwwwwwwwww2' ivStr = ivStr || '1234567890123456' var keys = CryptoJS.enc.Utf8.parse(keyStr) const iv = CryptoJS.enc.Utf8.parse(ivStr) var decrypt = CryptoJS.AES.decrypt(word, keys, { iv, mode: CryptoJS.mode.CBC, // padding: CryptoJS.pad.ZeroPadding padding: CryptoJS.pad.Pkcs7 }) return decrypt.toString(CryptoJS.enc.Utf8) } export default { encrypt, decrypt }