在node.js上使用AES-ECB加密二进制数据

Fan*_*nch 2 encryption aes ecb node.js

我尝试在node.js上进行加密,但是很遗憾,我无法获得与在线站点相同的结果。

我想用二进制密钥加密一些二进制数据。我在nodejs网站上使用了该教程,但结果与参考数据集有所不同。我的参考数据集已通过Java代码,C代码和两个在线站点进行了验证:http : //aes.online-domain-tools.com/https://www.hanewin.net/encrypt/aes/aes-测试文件

您是否知道如何以与那些网站相同的方式加密?我想这可能是填充?

提前致谢。弗朗索瓦

我的参考数据集:

    key=8CBDEC62EB4DCA778F842B02503011B2
    src=0002123401010100000000000000c631
    encrypted=3edde3f1368328a1a37cf596bc8d4a7c
Run Code Online (Sandbox Code Playgroud)

我的代码:

    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
Run Code Online (Sandbox Code Playgroud)

输出:

    result   : 4da42b57b99320067979086700651050e972f1febd1d506e5c90d3b5d3bc9424
Run Code Online (Sandbox Code Playgroud)

Fan*_*nch 6

谢谢ArtjomB。

我在下面发布固定代码:

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
Run Code Online (Sandbox Code Playgroud)

要解密,请执行以下操作:

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
Run Code Online (Sandbox Code Playgroud)

谢谢,我由衷的感谢。此致François