[英]node crypto decipher final fail
所以我使用节点加密库来破译由我无法控制的其他软件加密的二进制文件。 使用以下代码,我能够成功解密:
decipher = crypto.createDecipheriv('aes-128-ecb', password, iv);
decrypted = decipher.update(body, 'binary', 'utf8');
这很好,但似乎从我的解密文本末尾截断了大约11个字符。 这很奇怪,因为它有超过11200个明文字符。 现在我怀疑原因是因为我没有这条线:
decrypted += decipher.final('utf8');
但是,如果我添加该行,我会收到错误TypeError: DecipherFinal fail
我尝试了不同的输出编码而没有IV,但没有运气。 我也读过这个问题: nodejs加密解码有什么问题? 这似乎是同样的问题,但是我不明白我应该对openssl命令行采取的步骤,或者这将如何影响我的节点程序。
您是否尝试将自动填充设置为false? 默认设置似乎设置为true(见下文),所以如果对方没有使用默认填充(无论是PKCS#7填充),那么结果应该失败...
decipher.setAutoPadding(auto_padding=true)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.