nodejs和java交互 AES-128-CBC加密解密
Posted 深蓝前端
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs和java交互 AES-128-CBC加密解密相关的知识,希望对你有一定的参考价值。
var crypto = require(‘crypto‘);
const IV = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
/**
* aes 128 cbc加密 PKCS5Padding填充
* @param data 原始数据
* @param key 密钥 设备AccessCode前16个字符
* @returns 密文Buffer
*/
function aes_128_cbc_encrypt(data, key){
var encipher = crypto.createCipheriv(‘aes-128-cbc‘, Buffer.from(key, ‘ascii‘), IV);
var crypted = encipher.update(data, ‘utf8‘, ‘binary‘);
crypted += encipher.final(‘binary‘);
return Buffer.from(crypted, ‘binary‘);
}
/**
* aes 128 cbc解密,返回解密后的字符串
* @param crypted 密文
* @param key 密钥 设备AccessCode前16个字符
* @returns 明文
*/
function aes_128_cbc_decrypt(crypted, key){
var buf = new Buffer(crypted, ‘hex‘);
var decipher = crypto.createDecipheriv(‘aes-128-cbc‘, Buffer.from(key, ‘ascii‘), IV);
var decoded = decipher.update(buf, ‘binary‘, ‘utf8‘);
decoded += decipher.final(‘utf8‘);
return decoded;
}
module.exports = {
encrypt:aes_128_cbc_encrypt,
decrypt:aes_128_cbc_decrypt
}
以上是关于nodejs和java交互 AES-128-CBC加密解密的主要内容,如果未能解决你的问题,请参考以下文章
如何使用java解码用openssl aes-128-cbc编码的字符串?
AES (aes-cbc-128, aes-cbc-192, aes-cbc-256) 使用 openssl C 加密/解密
text 唯一支持的密码是AES-128-CBC和AES-256-CBC,密钥长度正确。
无法使用来自 AES-256-CBC 的 pgcrypto 解密,但 AES-128-CBC 可以
使用 OpenSSL/C++ 和 PHP/Mcrypt 的 AES-128-CBC 加密:仅解密第一个块
javascript 与 PHP 通信加密,使用AES 128 CBC no padding,以及ios,java,c#文章例子