鍍金池/ 問(wèn)答/HTML/ js如何實(shí)現(xiàn)sign算法驗(yàn)證?

js如何實(shí)現(xiàn)sign算法驗(yàn)證?

參數(shù):
url: https://uhome.haier.net:6503/css/v1/protected/familyService/family
appKey: e8a1e19058c0928d7690cfd59c6b062d
appId: SV-ABC-0000
serviceKey: e8a1e19058c092fdfd328dd59c6b062d
serviceId: UWS-FML-0000
timestamp: 1234567890
Body:
{
"userId":"u12",
"deviceType":"101c120024000810e2010540000044"
}

待簽名字符串:
/css/v1/protected/familyService/family{"userId":"u12","deviceType":"101c120024000810e2010540000044"}SV-ABC-0000e8a1e19058c0928d7690cfd59c6b062d

簽名字符串:
7c2e0ff62383263f10179d614c5a92df

clipboard.png

給定的參數(shù)如何用JS 拼接成待簽名字符串
主要是幾個(gè)參數(shù)拼接,求JS 方法如何拼接成

/css/v1/protected/familyService/family{"userId":"u12","deviceType":"101c120024000810e2010540000044"}SV-ABC-0000e8a1e19058c0928d7690cfd59c6b062d

最后字符串如何轉(zhuǎn)換成簽名字符串 sign=SHA256(url字符串 + Body字符串+appId+appKey +timestamp);
clipboard.png

回答
編輯回答
墻頭草

這種簽名一般都是后端對(duì)后端的,很少用到前端js

2018年9月10日 13:45
編輯回答
初心
//封裝全局簽名函數(shù)
Vue.prototype.signGenerate = (obj, key) => {
  let str0 = '';
  for (let i in obj) {
    if (i != 'sign') {
      let str1 = '';
      str1 = i + '=' + obj[i];
      str0 += str1;
    }

  }

  return sha1(str0 + key);
};
//調(diào)用
let obj = {
              appid: '',
              terminalNumber: '',
              time: parseInt(new Date().getTime() / 1000)
           };
obj.sign = this.signGenerate(obj, this.key);
2017年2月15日 04:17