node.js - 生成 iv 时出现 crypto.createDecipheriv 错误

标签 node.js cryptography

我在使用 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)

有没有人知道这可能是什么原因造成的?

谢谢。

最佳答案

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

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

关于node.js - 生成 iv 时出现 crypto.createDecipheriv 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29540801/

相关文章:

node.js - 为什么 sequelize.sync() 总是返回空模型?

c++ - 在键上使用 gpg --list-packets 的输出来获取 mpi 值以生成 s 表达式

node.js - 如何在 NodeJS 中生成 ECDSA 签名而不需要 PEM key 格式?

c++ - 使用 Botan 和 Qt 加密文件时出错

JavaScript 不可破解的倒计时器

node.js - 无法将对象添加到文档内的 MongoDB 数组

javascript - Bluebird 的绑定(bind)方法在调用之间保存上下文(this)

java - 一次一密,加密解密

java - Sha256 不提供 16 字节数组

javascript - 咕噜声 : Task "grunt-bower" not found