const CryptoJS = require('crypto-js')
var key = '0ca03a92751282f6ee05f8e6e42020b5'
exports.encrypt = (text) => {
var srcs = CryptoJS.enc.Utf8.parse(text);
return CryptoJS.AES.encrypt(srcs, CryptoJS.enc.Utf8.parse(key), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
}).toString()
}
exports.decrypt = (text) => {
var result = CryptoJS.AES.decrypt(text, CryptoJS.enc.Utf8.parse(key), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
})
return CryptoJS.enc.Utf8.stringify(result).toString();
}
试了一个小时,找不到原因,最后发现是跟‘key’的长度有关。如果使用ECB方式加密,使用这个秘钥解密出来的值就正常。
希望对别人有所帮助,我找了半天才找到原因