我刚开始使用CryptoJS,我想知道为什么它在解密后会返回一个不同的值。初始值是hello world,但解密后不返回hello world,我不知道为什么。
代码:
import * as CryptoJS from 'crypto-js';
let text = 'hello world';
let Crypto = CryptoJS.Crypto;
function aesEncrypt(data) {
let key = '6fa979f20126cb08aa645a8f495f6d85'; //length 32
let iv = 'I8zyA4lVhMCaJ5Kg';
let cipher = CryptoJS.AES.encrypt(data, CryptoJS.enc.Utf8.parse(key), {
iv: CryptoJS.enc.Utf8.parse(iv),
mode: CryptoJS.mode.CBC
});
return cipher.toString();
}
function aesDecrypt(data) {
let key = '6fa979f20126cb08aa645a8f495f6d85'; //length 32
let iv = 'I8zyA4lVhMCaJ5Kg';
let decipher = CryptoJS.AES.decrypt(data, CryptoJS.enc.Utf8.parse(key), {
iv: CryptoJS.enc.Utf8.parse(iv),
mode: CryptoJS.mode.CBC
});
return decipher.toString();
}
console.log(aesEncrypt(text));
console.log(aesDecrypt(aesEncrypt(text)));加密值为'J2T1uHeSNsgSgeBgziXU8w==‘,但解密值为'68656c6c6f20776f726c64’。
这里我漏掉了什么?提前感谢,并非常感谢任何帮助。
发布于 2021-05-16 16:53:59
decipher.toString(CryptoJS.enc.Utf8);就这样
https://stackoverflow.com/questions/67554393
复制相似问题