【发布时间】:2019-03-06 23:22:30
【问题描述】:
我正在尝试编写一个相当于php opensssl解密的脚本,这是我尝试过的,
var crypto = require('crypto');
var ct = 'jKscKK6E/aQ50hAck0YZkA==';
var key = 'gxmo872UXsU6u41t2zXzRNcU9H1cfuNvu/fnI/q1vIc=';
var iv = 'sd+XF3bRJ/WMT9woe8LOkQ==';
var decipher = crypto.createDecipheriv('aes-128-cbc', new Buffer(key, 'base64'), new Buffer(iv, 'base64'));
var content = decipher.update(new Buffer(ct, 'base64'), "binary", "utf8");
content += decipher.final("utf8");
console.log("Decrypted: " + content);
但我得到了这个错误,
错误:密钥长度无效
这是我试图等效的 php 代码
openssl_decrypt(base64_decode($ct), 'aes-128-cbc', base64_decode($key), OPENSSL_RAW_DATA, base64_decode($iv))
【问题讨论】:
-
你不是 base64 解码你的密钥/IV 任何地方。
-
什么 PHP OpenSSL 解密会是什么?提供源码!
-
@MaartenBodewes github.com/bcit-ci/CodeIgniter/blob/develop/system/libraries/… 并参考第 626 行
-
@LukeJoshuaPark,我错过了缓冲区中的解码参数,在添加了现在错误提示无效密钥长度之后。
标签: php node.js codeigniter encryption cryptography