gpt4 book ai didi

javascript - Node.JS 中的 3des 加密返回无效的 IV 长度

转载 作者:搜寻专家 更新时间:2023-10-31 23:54:48 24 4
gpt4 key购买 nike

我是 Node 的新手,遇到了加密对象的问题:

var des3_key = new Buffer("redacted", "base64"); // copied from key in chilk
var des3_iv = new Buffer("alsoredacted", "base64"); // copied from iv in chilk
var des3_encryption = crypto.createCipheriv("des3", des3_key, des3_iv);
// encode a string
var string_to_encode = "thisisatest";
var ciphered_string = des3_encryption.update(string_to_encode, "utf8", "base64");
console.log(string_to_encode+" "+ciphered_string);

在 Node 控制台中和在服务器上运行时,第 6 行都会导致错误 node-crypto: Invalid IV length 32 而不是按预期返回加密对象。

我删除的 key 和 IV 以及它们的加密类型是从另一个文件复制的,但为了测试,我尝试了各种字符串和加密类型,但仍然得到相同的错误,尽管错误的长度不同。

我对加密的了解仅限于我以前使用过的,不幸的是,我在寻找 Node 的故障排除资源时遇到了麻烦。任何帮助将不胜感激。

编辑:使用 des 和 des3 进行试验会产生相同的结果。

最佳答案

来自 OP 的编辑:

已解决:

工作代码:

var string_to_decode = "encrypted string";
var des_key = new Buffer("key string", "base64");
var des_iv = new Buffer(0);
var des_decryption = Crypto.createDecipheriv("DES-EDE3", des_key, des_iv);
var deciphered_string = des_decryption.update(string_to_decode, "base64", "utf8");
console.log("["+string_to_decode+"] => ["+deciphered_string+"]");

我通过编写脚本来猜测 key 和 IV 长度、加密类型和方法以及编码类型的组合,直到得出正确的字符串,从而找到了这一点。这是最后的手段,但它奏效了。

关于javascript - Node.JS 中的 3des 加密返回无效的 IV 长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24384394/

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