安全签名方法

安全签名方法(必用方法)

生成步骤

第一步

设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序), 使用URL键值对的格式(即key1=value1&key2=value2... )拼接成字符串stringSignTemp

特别注意以下重要规则:

  • 参数名ASCII码从小到大排序(字典序)
  • 如果参数的值为null不参与签名
  • 参数名区分大小写
  • 集合M中不能包含 sign 参数,若有,请去掉此参数再签名

第二步

stringSignTemp最后拼接上app_secret得到 stringSignOrigin字符串

第三步

stringSignOrigin进行MD5运算,再将得到的字符串所有转换为小写,得到sign

举例说明

假如传送的参数如下:

  1. app_key: 00000000
  2. channel: 1
  3. platform: 2
  4. money: 1
  5. client_ip: 127.0.0.1
  6. subject: my_subject

假设app_secret为: your_app_secret

第一步

得到 stringSignTemp

  1. stringSignTemp = "app_key=00000000&channel=1&client_ip=127.0.0.1&money=1&platform=2&subject=my_subject"

第二步

得到 stringSignOrigin

  1. stringSignOrigin = stringSignTemp + "&app_secret=your_app_secret"

sign_p_9

第三步

得到签名

  1. signTemp = md5(stringSignOrigin)
  2. sign = signTemp.toLowerCase()

即:

  1. md5("app_key=00000000&channel=1&client_ip=127.0.0.1&money=1&platform=2&subject=my_subject&app_secret=your_app_secret").toLowerCase()

得出的签名如下

  1. 1af39b08e44a9016a359aebd42e97b07