小程序簽名MD5加密

最近小程序需求一個簽名加密,要把請求參數按鍵值排序並轉化爲字符串,而後進行MD5加密。json

      //時間戳
      var timestamp = (Date.parse(new Date()))/1000;//簽名驗證
      var key = '服務端給的';
      var json = {
        signTime: timestamp,
        versionNumber: that.data.versionNumber,
        title: name,
        idcard: cardnum,
        limit: that.data.limit,
        page: that.data.page,
      }
      //json轉換爲數組並按鍵值升序排列再轉化爲字符串
      let { keys, values, entries } = Object;
      let dataArr = [];
      //json的每一個屬性和值添加到數組
      for (let [key, value] of entries(json)) {
        dataArr.push([key + value]); 
      }
      var newStr = dataArr.sort().join(""); //數組排序並轉化爲字符串
      console.log(newStr); 
      var sign = key + newStr + key;
      sign = MD5(sign).toUpperCase(); //MD5加密並轉爲大寫
      console.log(sign); 

思路是先把json格式的數據的每項參數和屬性都添加到一個數組,而後把數組排序,再轉爲字符串,最後進行MD5加密。小程序

後來以爲有點麻煩,直接新建數組,而後排序轉爲字符串,再進行MD5加密。數組

      var arr = ['signTime' + timestamp, 'versionNumber' + that.data.versionNumber,
 'title' + that.name, 'idcard' + that.cardnum, 'limit' + that.data.limit, 'page' + that.data.page];
      var newArr = [];
      for (var i = 0; i < arr.length; i++){
        newArr.push(arr[i]);
      }
      console.log(newArr);
      var newStr = newArr.sort().join(""); //數組排序並轉化爲字符串
      console.log(newStr);
      var sign = key + newStr + key; 

哪位大神有更好的方法請告知,很是感謝。加密

相關文章
相關標籤/搜索