crypto.createDecipheriv 生成 iv 时出错

crypto.createDecipheriv error when generating iv

我在使用 crypto.createDecipheriv

时遇到了一个非常奇怪的错误

定义如下代码时:

var decipher = crypto.createDecipheriv('aes-256-cbc', '3dc837d877144001c1291fdda417903d9130aeac', '1234567890123456');

请求到达这一行我立即收到错误,使我的应用程序崩溃:

Error: Invalid key length
    at Error (native)
    at new Decipheriv (crypto.js:282:16)
    at Object.Decipheriv (crypto.js:279:12)

有人知道是什么原因造成的吗?

谢谢。

您的密钥长度太短。 aes-256-cbc 需要一个 256 位的密钥,即 32 个字节。但是,您提供的(十六进制)密钥只有 20 个字节。

此外,您需要使用 new Buffer('myhexkey', 'hex') 作为关键参数才能解码十六进制字节。