Module: open-service-node-sdk/lib/decrypt

解密方案如下:

  1. 取出返回的JSON中的encrypt字段。
  2. 对密文BASE64解码:encrypted = Base64_Decode(encrypt)
  3. 使用AESKey做AES解密:decrypted = AES_Decrypt(encrypted)
  4. 验证解密后appId、消息长度
  5. 去掉头部的16个随机字节,4个字节的消息长度和尾部的appId即为最终的消息体原文msg
Parameters:
Name Type Description
encodingAESKey String

数据加密密钥

appId String

应用开发商创建应用获取的appId

encrypt String

消息密文, 回调接口Post参数中的encrypt字段

Author:
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'
// }