数据签名

更新时间:2023-05-25 01:55:31

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

设置签名校验

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

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

解析密码

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

  1. 先对数据进行 Base64 解码。
  2. 通过 AES (ECB 模式)对 accessKey 的中间 16 位代码进行解密 ,从而得到真正的设备状态数据。