帮助中心

加签、验签算法

2016-06-03

API接口请求加签算法:

  1. 将AppId、Timestamp、Token(客户端保存),按照参数名在英文字典中的顺序排序,然后重新拼成一个标准的query string。

  2. 将上一步得到的query string,按照UTF-8格式转换成字节数组。

  3. 以SHA1/MD5(32)算法,对query string字节数组计算出一个签名字节数组。(默认为SHA1加密,开通MD5加密请联系项目经理)

  4. 将签名字节数组,转换为十六进制的字符串。将最后得到的字符串作为请求的sign参数,将sign字段与其他参数一同放在请求中发送给服务。

例如:

  1. 将得到的AppId和Token以及时间戳拼接成QueryString串:AppId=EZP&Timestamp=20150701093010&Token=9cd8c0ed38a9e113

  2. 做SHA1结果为(使用大写):657D0E34AD7B342F888CA3856F207F35CF2622A8。

  3. 做MD5结果为(使用大写):EEA423559697D74A5159678797B953B8。

  4. 将SHA1/MD5结果作为Sign的请求一并提交。

API接口响应验签算法:

  1. 将接收到的数据中的Timestamp、AppId、Token(客户端保存),按照参数名在英文字典中的顺序排序,然后重新拼成一个标准的query string。

  2. 将上一步得到的query string,按照UTF-8格式转换成字节数组。

  3. 将sign字段的值,从十六进制字符串转换成字节数组。

  4. 以SHA1算法,验证query string的签名(使用前面两步所生成的字节数组)。

  5. 若验证不通过,应简单忽略该请求,不做任何处理。若验证通过,执行相应的业务处理。(说明:对于返回status=false的不应验证)

16339