我查看维基百科,它说" GCM和GMAC都可以接受任意长度的初始化向量。"
然而,当我尝试
时crypto.createCipheriv(
'aes-128-gcm',
KEY,
new Buffer(crypto.randomBytes(16))
)
我得到" Uncaught TypeError:无效iv长度16" - 我添加了几个断点,发现nodejs crypto iv length设置为12?差异有原因吗?
答案 0 :(得分:1)
这已在较新的Node版本中修复(> = 6.3)。这是相关的GitHub线程和PR:https://github.com/nodejs/node/pull/6376
在处理任意长度之前,开发人员似乎只是实现了建议的默认值。