wx-ding-aes
Version:
Wechat open platform, Enterprise wechat and DingTalk AES decode library.
30 lines (29 loc) • 972 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* parser 模块,用于解析服务器发来的密文
* @module parser
*/
const crypto_1 = require("crypto");
const pkcs = require("./pkcs7");
exports.encrypt = (data, encodingAESKey) => {
const AESKey = Buffer.from(encodingAESKey, 'base64');
const iv = AESKey.slice(0, 16);
const cipher = crypto_1.createCipheriv('aes-256-cbc', AESKey, iv);
cipher.setAutoPadding(false);
return Buffer
.concat([
cipher.update(pkcs.encode(data)),
cipher.final()
]).toString('base64');
};
exports.decrypt = (data, encodingAESKey) => {
const AESKey = Buffer.from(encodingAESKey, 'base64');
const iv = AESKey.slice(0, 16);
const decipher = crypto_1.createDecipheriv('aes-256-cbc', AESKey, iv);
decipher.setAutoPadding(false);
return pkcs.decode(Buffer.concat([
decipher.update(data, 'base64'),
decipher.final()
]));
};