|
|
@ -18,7 +18,7 @@ class FpCrypt { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* 处理 url 后缀 |
|
|
|
* 处理 url 后缀 |
|
|
|
* @param t url |
|
|
|
* @param t url |
|
|
|
* @param e |
|
|
|
* @param e xhr |
|
|
|
* @returns {*} |
|
|
|
* @returns {*} |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
handleSuffix(t, e) { |
|
|
|
handleSuffix(t, e) { |
|
|
@ -65,16 +65,17 @@ class FpCrypt { |
|
|
|
s = this.Ke(s); |
|
|
|
s = this.Ke(s); |
|
|
|
var l, f = (new Date)['valueOf'](), |
|
|
|
var l, f = (new Date)['valueOf'](), |
|
|
|
d = (this.qe()["num"] % 2) === 0 ? (50 * Math['random'](1)) : (49 * Math['random']()) + 51; |
|
|
|
d = (this.qe()["num"] % 2) === 0 ? (50 * Math['random'](1)) : (49 * Math['random']()) + 51; |
|
|
|
logger("tokenKey 加密方法选择", d, e) |
|
|
|
|
|
|
|
// d = ((this.qe()['num'] % 2) === 0) ? (50 * Math['random'](1)) : (49 * Math['random']()) + 51;
|
|
|
|
|
|
|
|
if ((d >= 0) && (d <= 50)) { |
|
|
|
if ((d >= 0) && (d <= 50)) { |
|
|
|
|
|
|
|
logger('对dzfp-ssotoken进行加密') |
|
|
|
l = this.Qs(f) |
|
|
|
l = this.Qs(f) |
|
|
|
} else if ((d >= 51) && d <= 100) { |
|
|
|
} else if ((d >= 51) && d <= 100) { |
|
|
|
|
|
|
|
logger('对tokenKey进行加密') |
|
|
|
l = this.Qt(f, e) |
|
|
|
l = this.Qt(f, e) |
|
|
|
} |
|
|
|
} |
|
|
|
var h = s['indexOf']("?") === (s["length"] - 1) ? "" : s['indexOf']("?") > -1 ? "&" : "?", |
|
|
|
var h = s['indexOf']("?") === (s["length"] - 1) ? "" : s['indexOf']("?") > -1 ? "&" : "?", |
|
|
|
p = s += ""['concat'](h, "ruuid=")['concat'](f); |
|
|
|
p = s += ""['concat'](h, "ruuid=")['concat'](f); |
|
|
|
if (o) { |
|
|
|
if (o) { |
|
|
|
|
|
|
|
logger(`对 ${o} 进行加密`) |
|
|
|
var v = p['split']("?")['splice'](1); |
|
|
|
var v = p['split']("?")['splice'](1); |
|
|
|
for (var b in v['map'](function (t) { |
|
|
|
for (var b in v['map'](function (t) { |
|
|
|
return t["split"]("=")[0] |
|
|
|
return t["split"]("=")[0] |
|
|
@ -180,44 +181,64 @@ class FpCrypt { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Ke(t) { |
|
|
|
Ke(t) { |
|
|
|
var n = "6|5|4|3|0|1|2"["split"]("|"), o = 0; |
|
|
|
var s, l, f; |
|
|
|
while (1) { |
|
|
|
if ("" === t || null == t) { |
|
|
|
switch (n[o++]) { |
|
|
|
return t; |
|
|
|
case "0": |
|
|
|
} |
|
|
|
|
|
|
|
f = t; |
|
|
|
|
|
|
|
(0 !== f["indexOf"]("/")) && (f += "/"); |
|
|
|
|
|
|
|
s = t["split"]("?"); |
|
|
|
|
|
|
|
l = []; |
|
|
|
(s["length"] > 1) && (f = s[0], l = s[1]["split"]("&")); |
|
|
|
(s["length"] > 1) && (f = s[0], l = s[1]["split"]("&")); |
|
|
|
continue; |
|
|
|
|
|
|
|
case "1": |
|
|
|
|
|
|
|
for (var a = 0; a < l["length"]; a++) { |
|
|
|
for (var a = 0; a < l["length"]; a++) { |
|
|
|
var c = l[a], u = c.split("="); |
|
|
|
var c = l[a], u = c.split("="); |
|
|
|
("t" !== u[0]) && "urlyzm" !== u[0] && "ruuid" !== u[0] && (f += "".concat(f.includes("?") ? "&" : "?").concat(c)) |
|
|
|
("t" !== u[0]) && "urlyzm" !== u[0] && "ruuid" !== u[0] && (f += "".concat(f.includes("?") ? "&" : "?").concat(c)) |
|
|
|
} |
|
|
|
} |
|
|
|
continue; |
|
|
|
|
|
|
|
case "2": |
|
|
|
|
|
|
|
(-1 === f.indexOf("?")) && (f += "?"); |
|
|
|
(-1 === f.indexOf("?")) && (f += "?"); |
|
|
|
logger(`处理url后缀${t}完成返回${f}`) |
|
|
|
logger(`处理url后缀${t}完成返回${f}`) |
|
|
|
return f; |
|
|
|
return f; |
|
|
|
case "3": |
|
|
|
|
|
|
|
var s = t["split"]("?"), l = []; |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
case "4": |
|
|
|
|
|
|
|
(0 !== f["indexOf"]("/")) && (f += "/"); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
case "5": |
|
|
|
|
|
|
|
var f = t; |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
case "6": |
|
|
|
|
|
|
|
if ("" === t || null == t) { |
|
|
|
|
|
|
|
return t; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Ke(t) {
|
|
|
|
|
|
|
|
// var n = "6|5|4|3|0|1|2"["split"]("|"), o = 0;
|
|
|
|
|
|
|
|
// while (1) {
|
|
|
|
|
|
|
|
// switch (n[o++]) {
|
|
|
|
|
|
|
|
// case "0":
|
|
|
|
|
|
|
|
// (s["length"] > 1) && (f = s[0], l = s[1]["split"]("&"));
|
|
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
// case "1":
|
|
|
|
|
|
|
|
// for (var a = 0; a < l["length"]; a++) {
|
|
|
|
|
|
|
|
// var c = l[a], u = c.split("=");
|
|
|
|
|
|
|
|
// ("t" !== u[0]) && "urlyzm" !== u[0] && "ruuid" !== u[0] && (f += "".concat(f.includes("?") ? "&" : "?").concat(c))
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
// case "2":
|
|
|
|
|
|
|
|
// (-1 === f.indexOf("?")) && (f += "?");
|
|
|
|
|
|
|
|
// logger(`处理url后缀${t}完成返回${f}`)
|
|
|
|
|
|
|
|
// return f;
|
|
|
|
|
|
|
|
// case "3":
|
|
|
|
|
|
|
|
// var s = t["split"]("?"), l = [];
|
|
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
// case "4":
|
|
|
|
|
|
|
|
// (0 !== f["indexOf"]("/")) && (f += "/");
|
|
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
// case "5":
|
|
|
|
|
|
|
|
// var f = t;
|
|
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
// case "6":
|
|
|
|
|
|
|
|
// if ("" === t || null == t) {
|
|
|
|
|
|
|
|
// return t;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// continue
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// break
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
he(t) { |
|
|
|
he(t) { |
|
|
|
let res = CryptoJS.MD5(t).toString(); |
|
|
|
let res = CryptoJS.MD5(t).toString(); |
|
|
|
logger('生成32位小写md5', t, res) |
|
|
|
logger(t, '生成32位小写md5 --->', res) |
|
|
|
return res |
|
|
|
return res |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -246,18 +267,11 @@ class FpCrypt { |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
Ae(t) { |
|
|
|
Ae(t) { |
|
|
|
var n = "4|2|1|3|0"["split"]("|"), i = 0, o, l, s; |
|
|
|
var o, l, s; |
|
|
|
while (1) { |
|
|
|
s = this.cookie; |
|
|
|
switch (n[i++]) { |
|
|
|
l = JSON["parse"](JSON["stringify"](t)); |
|
|
|
case "0": |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
case "1": |
|
|
|
|
|
|
|
o = s["indexOf"](l); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
case "2": |
|
|
|
|
|
|
|
l += "="; |
|
|
|
l += "="; |
|
|
|
continue; |
|
|
|
o = s["indexOf"](l); |
|
|
|
case "3": |
|
|
|
|
|
|
|
if ((-1 !== o)) { |
|
|
|
if ((-1 !== o)) { |
|
|
|
var a = (o + l["length"]), c = s.indexOf(";", a); |
|
|
|
var a = (o + l["length"]), c = s.indexOf(";", a); |
|
|
|
(-1 === c) && (c = s.length); |
|
|
|
(-1 === c) && (c = s.length); |
|
|
@ -266,30 +280,45 @@ class FpCrypt { |
|
|
|
logger('获取token', t, '16进制解码', res) |
|
|
|
logger('获取token', t, '16进制解码', res) |
|
|
|
return res; |
|
|
|
return res; |
|
|
|
} |
|
|
|
} |
|
|
|
continue; |
|
|
|
return null; |
|
|
|
case "4": |
|
|
|
|
|
|
|
// todo: 这里获取 cookie
|
|
|
|
|
|
|
|
s = this.cookie; |
|
|
|
|
|
|
|
l = JSON["parse"](JSON["stringify"](t)); |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Ae(t) {
|
|
|
|
|
|
|
|
// var n = "4|2|1|3|0"["split"]("|"), i = 0, o, l, s;
|
|
|
|
|
|
|
|
// while (1) {
|
|
|
|
|
|
|
|
// switch (n[i++]) {
|
|
|
|
|
|
|
|
// case "0":
|
|
|
|
|
|
|
|
// return null;
|
|
|
|
|
|
|
|
// case "1":
|
|
|
|
|
|
|
|
// o = s["indexOf"](l);
|
|
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
// case "2":
|
|
|
|
|
|
|
|
// l += "=";
|
|
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
// case "3":
|
|
|
|
|
|
|
|
// if ((-1 !== o)) {
|
|
|
|
|
|
|
|
// var a = (o + l["length"]), c = s.indexOf(";", a);
|
|
|
|
|
|
|
|
// (-1 === c) && (c = s.length);
|
|
|
|
|
|
|
|
// var u = s.substring(a, c);
|
|
|
|
|
|
|
|
// var res = unescape(u);
|
|
|
|
|
|
|
|
// logger('获取token', t, '16进制解码', res)
|
|
|
|
|
|
|
|
// return res;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
// case "4":
|
|
|
|
|
|
|
|
// // todo: 这里获取 cookie
|
|
|
|
|
|
|
|
// s = this.cookie;
|
|
|
|
|
|
|
|
// l = JSON["parse"](JSON["stringify"](t));
|
|
|
|
|
|
|
|
// continue
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// break
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
|
|
a(t) { |
|
|
|
a(t) { |
|
|
|
return t.reverse() |
|
|
|
return t.reverse() |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// let fpCrypt = new FpCrypt("oauth2_referer=dppt.hubei.chinatax.gov.cn; dzfp-ssotoken=37c347d5ab014bacb418d7756b9e7ee1; SSO_SECURITY_CHECK_TOKEN=91081171bc604d16910500c4982e74ea; c_time=12; lzkqow39189=c6edeb37685b423c8298eaa8e1b41097; DTSwUOYx7MiWN=5c199c6d5d4fda3505876d98a7e173007f4ab2ae661119adf9143257d71d06e5; lzkqow38189=1727098216617; MKls83gqduGS=e4ec10654056af2f2641b3ce60f124ee7cc607e9ac44bb8b86b9e6d5879ce1c3c7b827862a2ff46be48061c039dccddf");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// fpCrypt.handleParam('{"gjbq": "1","fpztDm": ["01","02","03","04"],"fplyDm": "0","fplxDm": [],"kprqq": "2024-09-08","kprqz": "2024-09-24","tfrqq": "2024-09-08","tfrqz": "2024-09-24","sflzfp": "","dtBz": "N","pageNumber": 1,"pageSize": 20}',
|
|
|
|
|
|
|
|
// "/szzhzz/qlfpcx/v1/queryFpjcxx?t=1727101152631")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// let handleSuffix = fpCrypt.handleSuffix("/szzhzz/qlfpcx/v1/queryFpjcxx?t=1727115438241");
|
|
|
|
|
|
|
|
// console.log(handleSuffix)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = FpCrypt |
|
|
|
module.exports = FpCrypt |