我的后端使用来自node.js的Crypto
加密字符串。
在客户端,我想使用CryptoJS
解密字符串。但是,我总是得到一个空字符串。
加密(加密):
function encrypt(value) {
const cipher = crypto.createCipher('aes-256-ctr', 'SECRET_STRING');
let crypted = cipher.update(value,'utf8','hex');
crypted += cipher.final('hex');
return crypted;
}
解密(CryptoJS):
const decrypt = (value) => {
const bytes = CryptoJS.enc.Hex.parse(value);
const decrypted = CryptoJS.AES.decrypt(
bytes,
'SECRET_STRING',
{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.NoPadding
},
);
return decrypted.toString(CryptoJS.enc.Utf8);
};
这将返回一个空字符串。我会误解什么,我在做错什么?