Node.js:错误的密码输出
当解密hex编码的AES128输出时,Node.js奇怪地给了我错误的输出。
function decrypt_data( data, key, iv ) { var dc = crypto.createDecipheriv( 'aes-128-cbc', hex_to_str(key), hex_to_str(iv) ); var res = dc.update( data, 'hex', 'utf8' ); res += dc.final( 'utf8' ); console.log(res); return res; }
这个function似乎完全没问题,所有的testing都通过了。 但是当我从真正的节点服务器调用它时,它会返回损坏的输出。
消息的尾巴是好的,但前32个符号是完整的垃圾。 像这样的东西:
8 ro & AMD Accelerated Parallel Processing" : [ "Cayman", "Cayman", "AMD Phenom(tm) II X2 555 Processor" ] }, "request" : "hello", "version" : 1 }
不pipeinput如何,前32个字节的返回值都是错误的。
您的代码正在使用CBC模式。 在这种模式下,输出的初始块的损坏通常可能由于使用错误的IV而引起。 仔细检查你是否使用完全相同的IV来encryption和解密。 这意味着要逐字节地检查它。
- 是否可以使用node-webkit文件解码AESencryptionvideo?
- AES在.NET中encryption并使用Node.jsencryption解密?
- 解密s3文件卸载使用unload命令与对称密钥encryption
- 使用node.js解密AES256将返回错误的最终块长度
- 无法使用Java解密AES-256 GCM
- 用python和nodejsencryption和解密
- 节点encryptionaes256-cbc 0x0填充的例子
- 如何在Python中encryption和在Javascript中解密?
- 使用Diffie-Hellman密钥交换和AES进行客户端HTTPencryption