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