签名规则

  1. 将接收的 params 参数解析为参数名:参数值(key:value)的形式,即:JAVA 的 map,或 js 的 object,这些是计算签名用到的全部参数;

  2. 将解析得到的参数原始值(即不做任何处理的参数值,比如不能进行 URL 编码)按照参数名的字典序排序;

  3. 将排序后的参数键值对用&拼接,即拼接成key1=val1&key2=val2&...

  4. 将上一步得到的字符串进行 Base64 编码(注意 Base64 编码时要设置字符集为 utf8),假设 Base64 编码后的字符串为 base64EncodedStr

  5. 用 app_secret 作为 HMAC-SHA1 哈希 key(即sha1Key),使用 sha1Key 对base64EncodedStr 进行 HMAC-SHA1 哈希得到字节数组(注意是字节数组,不要转成十六进制字符串,否则签名计算会出错;一般的 HMAC-SHA1 算法得到的结果是字节数组的十六进制表示,请务必留意这里和一般情况不太一样),用伪代码表示即:

     sha1ResultBytes = hmac - sha1(base64EncodedStr, sha1Key)
    
  6. 对上面得到的 sha1ResultBytes 进行 MD5 得到 32 位字符串,即为 sig;

© www.ximalaya.com lnc.ALL Rights Reserved 修订时间: 2019-08-20 15:06:46

results matching ""

    No results matching ""