数据签名和解密

更新时间:2025-01-22 09:55:48下载pdf

本文为您介绍消息队列数据签名方法。

设置签名校验

在获得真正的data数据前,可以设置防篡改 MD5 签名校验。签名算法执行步骤如下:

  1. 将收到的 JSON 格式的每个参数(除sign和值为空外)格式化为key=val
  2. 进行组装(使用key升序)。组装后的字符串格式示例:k1=v1||k2=v2
  3. 添加 Access Secret。例如:k1=v1||k2=v2...kn=vn||key
  4. 进行整串字符串的 MD5 签名。
  5. 如果 MD5 值和收到数据的 sign 一致,则表明数据没有被篡改;否则视为被篡改。

解密数据

签名校验通过后,对数据进行解密:

  1. 先对数据进行 Base64 解码。
  2. 通过 AES/ECB 或者 AES/GCM 模式进行解密。使用 Access Secret 的中间 16 位字符作为 Key 进行解密,从而得到真正的消息数据。
  • 开通 消息订阅 时,默认使用 AES/ECB 模式来解密数据。
  • 目前暂未开放开发者自行切换的途径,您可以通过 提交工单 切换到 AES/GCM 模式。