aesEncryption(data, key) {
// aes 加密
var iv = iv || "";
var clearEncoding = 'utf8';
var cipherEncoding = 'hex';
var cipherChunks = [];
var cipher = crypto.createCipheriv('aes-128-ecb', key, iv);
cipher.setAutoPadding(true);
cipherChunks.push(cipher.update(data, clearEncoding, cipherEncoding));
cipherChunks.push(cipher.final(cipherEncoding));
return cipherChunks.join('');
},
aesDecryption(data, key) {
// aes 解密
var iv = "";
var clearEncoding = 'utf8';
var cipherEncoding = 'hex';
var cipherChunks = [];
var decipher = crypto.createDecipheriv('aes-128-ecb', key, iv);
decipher.setAutoPadding(true);
cipherChunks.push(decipher.update(data, cipherEncoding, clearEncoding));
cipherChunks.push(decipher.final(clearEncoding));
return cipherChunks.join('')
}
注意:
Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
at Decipheriv.final (crypto.js:183:26)
如果遇到类似的错误,应该是输出格式不统一,cipherEncoding 可以更换base64试试