gpt4 book ai didi

javascript - CryptoJS 解密对象

转载 作者:行者123 更新时间:2023-11-30 14:56:26 24 4
gpt4 key购买 nike

我需要解密用 CryptoJS 加密的东西。我有用于加密的函数、加密对象的结构和用于加密的数据,但我需要知道该对象的一些值。

函数是:

var c = CryptoJS.enc.Utf8.parse(g.slice(0, 16));
var d = CryptoJS.AES.encrypt(JSON.stringify(collectData), c, {
iv: c,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString()

稍后,对加密变量应用以下内容:

d.toString().replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '*');

我试过这个但我不能还原对象:

var decrypted = CryptoJS.AES.decrypt(coord, key, {
iv: key,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7

});

console.log('decrypted clean:\n' + decrypted);
console.log('decrypted JSON.stringify():\n'+ JSON.stringify(decrypted));

谢谢!

最佳答案

嘿,你的问题实际上帮助我找到了一个解决方案,加密接受一个对象,解密接受一个字符串,所以你可以做你的替换

另一个可能产生此类错误的地方是 key ,在将 key 解析为 Utf8 时确保 key 恰好是 16 个字符,您可以添加空值添加字符串的末尾以确保它足够长通过追加解析前将 '/u0000' 添加到您的字符串中

encrypt(data) {
return CryptoJS.AES.encrypt(JSON.stringify(data), this.secret,
{
keySize: 128 / 8,
iv: this.secret,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString();
}

decrypt(data) {
return JSON.parse(CryptoJS.enc.Utf8.stringify(CryptoJS.AES.decrypt(data, this.secret,
{
keySize: 128 / 8,
iv: this.secret,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})));
}

关于javascript - CryptoJS 解密对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47201575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com