1. 程式人生 > 實用技巧 >js實現排序簽名

js實現排序簽名

工作中應三方爸爸要求需要簽名加密

記錄常用的簽名方式

流程:

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();
}