node AES/ECB/PKCS5Padding 加密解密

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试试

你可能感兴趣的:(后端学习)