我尝试在node.js上进行加密,但严重的是我没有与在线网站相同的结果。
我想用二进制密钥加密一些二进制数据。我使用nodejs site上的教程,但我的参考数据集有不同的结果。 我的参考数据集用java代码验证,带有C代码和两个在线站点: http://aes.online-domain-tools.com/和https://www.hanewin.net/encrypt/aes/aes-test.htm
您是否知道如何以与那些网站相同的方式加密? 我猜它可以填充?
提前致谢。 弗朗索瓦
我的参考数据集:
key=8CBDEC62EB4DCA778F842B02503011B2
src=0002123401010100000000000000c631
encrypted=3edde3f1368328a1a37cf596bc8d4a7c
我的代码:
var key = new Buffer('8CBDEC62EB4DCA778F842B02503011B2', 'hex')
var src = new Buffer('0002123401010100000000000000c631', 'hex')
cipher = crypto.createCipher("aes-128-ecb", key)
result = cipher.update(src).toString('hex');
result += cipher.final().toString('hex');
"result : " + result
输出:
result : 4da42b57b99320067979086700651050e972f1febd1d506e5c90d3b5d3bc9424
答案 0 :(得分:4)
谢谢Artjom B.
我在下面发布固定代码:
var key = new Buffer('8CBDEC62EB4DCA778F842B02503011B2', 'hex')
var src = new Buffer('0002123401010100000000000000c631', 'hex')
cipher = crypto.createCipheriv("aes-128-ecb", key, '')
cipher.setAutoPadding(false)
result = cipher.update(src).toString('hex');
result += cipher.final().toString('hex');
"result : " + result
要解密,请执行相同的操作:
var key = new Buffer('8CBDEC62EB4DCA778F842B02503011B2', 'hex')
var encrypted = new Buffer('3edde3f1368328a1a37cf596bc8d4a7c', 'hex')
decipher = crypto.createDecipheriv("aes-128-ecb", key, '')
decipher.setAutoPadding(false)
result = decipher.update(encrypted).toString('hex');
result += decipher.final().toString('hex');
"result : " + result
谢谢,我真诚地感激不尽。 此致,弗朗索瓦