js實現排序簽名
阿新 • • 發佈:2021-01-20
工作中應三方爸爸要求需要簽名加密
記錄常用的簽名方式
流程:
1.第一步
設簽名加密的資料為集合M,將集合M內非空引數值的引數按照引數名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字串stringA。
2.第二步
在stringA最後拼接上secretKey得到stringSignTemp字串,並對stringSignTemp進行MD5運算,再將得到的字串所有字元轉換為大寫,得到sign值。
具體實現
import md5 from 'md5'; genSignParams(secretKey, inObject) { var sorter = function (inObject) { var sortedJson = {}; var sortedKeys = Object.keys(inObject).sort(); for (var i = 0; i < sortedKeys.length; i++) { sortedJson[sortedKeys[i]] = inObject[sortedKeys[i]] } return sortedJson; } var sortedParam = sorter(inObject); var needSignatureStr = ""; for (var key in sortedParam) { var value = sortedParam[key]; needSignatureStr = needSignatureStr + key + '=' + value + '&'; } needSignatureStr += 'secretKey=' + secretKey; return md5(needSignatureStr).toUpperCase(); }