安全簽名方法

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

生成步驟

第一步

設所有發送或者接收到的資料為集合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