我正在尝试使用 nodeJS 加密模块使用 AES 128 的 ECB 模式加密一些十六进制字符串。
为此,我使用以下代码:
cryptoAES = function (sInput, sKey, bEncrypt) {
return crypto('AES-128-ECB', sInput, sKey, bEncrypt);
};
crypto = function (sAlgo, sInput, sKey, bEncrypt) {
var result = "";
if (bEncrypt){
var cipher;
var bKey = new Buffer(sKey, 'hex');
var bInput = new Buffer(sInput, 'hex');
cipher = crypto.createCipher(sAlgo, bKey);
cipher.setAutoPadding(false);
result = cipher.update(bInput, null, 'hex');
result += cipher.final('hex');
}
return result;
};
当调用 cryptoAES 时:
sKey = '12345678900987654321123456789001'
sInput = '060123456789ABCDEF00000000000000'
我应该得到
result = 'FBECD5D02C5B7CD1055AAF86238D1E2F'
但我得到:
result = 'ea1f940da8e269b9e075c936bff6a1f7'
知道我做错了什么吗?