Commit bf897934 by gxfeng

fgx--增加md5签名验证

parent 121e2fd8
...@@ -3,6 +3,7 @@ var objsettings = require("../config/objsettings"); ...@@ -3,6 +3,7 @@ var objsettings = require("../config/objsettings");
var settings = require("../config/settings"); var settings = require("../config/settings");
const request = require('request'); const request = require('request');
const cryptoJS = require('crypto-js'); const cryptoJS = require('crypto-js');
const md5 = require('MD5');
class System { class System {
static declare(ns) { static declare(ns) {
...@@ -330,6 +331,46 @@ class System { ...@@ -330,6 +331,46 @@ class System {
return plaintext; return plaintext;
} }
/**
* 签名认证
* @param {json} vo json对象
* @param {string} secret 签名信息
*/
static signValid(obj, secret) {
console.log("secret:{}", secret);
// obj json字符串
var svrSign;
if (obj == "{}" || !secret || secret == 'undefined') {
svrSign = "";
} else {
// 对传入的json obj进行处理得到toSignStr
let arr = [];
for (var key in obj) {
arr.push(key)
}
arr.sort();
let str = '';
for (var i in arr) {
if (arr[i] != "sign" && arr[i] != "ip" &&
(!(Object.prototype.toString.call(obj[arr[i]]) == '[object Object]' || Object.prototype.toString.call(obj[arr[i]]) == '[object Array]')
&& (obj[arr[i]] && obj[arr[i]] != 'undefined'))) {
str += arr[i] + "=" + obj[arr[i]] + "&";
}
}
var toSignStr = str.substr(0, str.length - 1);
var sb = toSignStr + secret;
console.log("cmd=ApiSignUtils:toSign msg=original Sign:" + sb.toString() + " req param:" + obj);
// 对sb进行md5加密后得到svrSign
svrSign = md5(sb);
console.log("svrSign===>" + svrSign);
}
if (svrSign.toLowerCase() == obj["sign"].toLowerCase()) {
console.log("cmd=ApiSignUtils:SignValid msg=original Sign:" + svrSign)
return true;
}
console.error("cmd=ApiSignUtils:SignValid msg=Sign validtate fail! svrSign:" + svrSign + " reqSign:" + obj["sign"]);
return false;
}
} }
Date.prototype.Format = function (fmt) { //author: meizz Date.prototype.Format = function (fmt) { //author: meizz
...@@ -416,3 +457,21 @@ module.exports = System; ...@@ -416,3 +457,21 @@ module.exports = System;
// console.log(e); // console.log(e);
// } // }
// })() // })()
(async () => {
var obj = {
"postWay": '2',
"courier_number": '1805679087555',
"companyId": 102,
"customerId": 499482,
"sign": '57acb7037f64d558edf2e844340791e2',
"currentPeriod": 202001
}
var secret = "2a24a72dc78679bb0796dd3af50a429a";
try {
var flag = await System.signValid(obj, secret)
console.log(flag);
} catch (e) {
console.log(e);
}
})()
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment