解密方案如下:
- 取出返回的JSON中的encrypt字段。
- 对密文BASE64解码:encrypted = Base64_Decode(encrypt)
- 使用AESKey做AES解密:decrypted = AES_Decrypt(encrypted)
- 验证解密后appId、消息长度
- 去掉头部的16个随机字节,4个字节的消息长度和尾部的appId即为最终的消息体原文msg
Parameters:
Name | Type | Description |
---|---|---|
encodingAESKey |
String | 数据加密密钥 |
appId |
String | 应用开发商创建应用获取的appId |
encrypt |
String | 消息密文, 回调接口Post参数中的encrypt字段 |
- Source:
Returns:
- Type
- Object
Example
const decrypt = require('open-service-node-sdk/lib/decrypt');
// 回调Post参数
const body = {
encrypt: 'ol5ZdzGiGK9yXYIuKB0wb5I4DTnZwkNcuo0b3OZgCUNqMRIdb9mfsmjVEe5vJT+pp7M5kyY8lfxFGnrT/qr0UER9v+skaX5GQ59AEtILoe4='
};
const encodingAESKey = 'KLN4DMkqdDKnUvLQ501oitOHsrZy6VRXadgdNcu3jgd';
const appId = 'e490e912-4c09-11e7-b114-b2f933d5fe66';
const decoded = decrypt(encodingAESKey, appId, body.encrypt);
console.log(decoded);
// output:
// {
// before: 'nO3FK7ahlgrn6sSQ',
// content: { text: 'hello world' },
// after: 'e490e912-4c09-11e7-b114-b2f933d5fe66'
// }