当前位置: 首页 > news >正文

有啦域名网站怎么做wordpress设置vip

有啦域名网站怎么做,wordpress设置vip,设计个企业网站网页咋弄,衡阳网站开发培训文章目录 1. 写在前面2. 加密分析3. 算法还原 【#x1f3e0;作者主页】#xff1a;吴秋霖 【#x1f4bc;作者介绍】#xff1a;擅长爬虫与JS加密逆向分析#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python… 文章目录 1. 写在前面2. 加密分析3. 算法还原 【作者主页】吴秋霖 【作者介绍】擅长爬虫与JS加密逆向分析Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python与爬虫领域研究与开发工作 【作者推荐】对爬虫领域以及JS逆向分析感兴趣的朋友可以关注《爬虫JS逆向实战》《深耕爬虫领域》 未来作者会持续更新所用到、学到、看到的技术知识包括但不限于各类验证码突防、爬虫APP与JS逆向分析、RPA自动化、分布式爬虫、Python领域等相关文章 作者声明文章仅供学习交流与参考严禁用于任何商业与非法用途否则由此产生的一切后果均与作者无关如有侵权请联系作者本人进行删除 1. 写在前面 又是一个忙碌的周末其实最新有研究很多新的东西但一直也没时间去写文章上次发布的关于h5st参数的文章是4.2版本的批量商品价格查询。没几天全部更新到了4.7现在小版本也是更新不断不过小版本并不会受到太大的一个影响本次文章更新的算法分析还原为最新4.7大版本下的4.7.2小版本 2. 加密分析 首先接口请求的参数啥的就不再过多的去分析主要看看核心点目前全部VMP化先把加密值拿出来如下所示 20240602103029809;5gtm6nz5ygggi9i8;f06cc;tk03w83c31b9341lMXgxWV9ScV9T5XO0c4lf3D7C4_8ewrP-y5CbOpQMxXJtPJoRrTYLui0MOiXN6oSSmP8Lwj0A6ghi;41cfe0ef53fa6ef42f0c090e80fac571be52efc6d951c5749036fb8edc892de3;4.7;1717295429809;TKmW3TyExztvDjBvYW30spstXUA9USbfpQA2Z0cZM9L1VhcxddydRM47xpgvr9gF1nxvSbHGC822PZqAj-untQlDF4PnJ0Hf1Ilqo8hI63Ymujt8frJjHYiCZK_VL5qL6uWRqrkdShS9QVb-UatJZSq8fRWDAxec-u0Ix4xN0XCKsQk4deD2JTt97sw4UlkGVqXbTOnXzyEQ-GTGuMi_gO-qtogbuof-tt5aNubxmj2ZcBxUGJOC9AkC1m6rZFKpSRCIob0WfsB6qSaH7fCv0-Ec7AwbiRbE_7C6-dAuo8ua3M8D4UdUNQAep_YCy4xEV_zuUUgKb3noPhz7rTiN1tS03CdM-n9YKsQaAEuJdlXhUQV8fY_p5xIpUsrVxOLCu7nZggE7nDk8PeheJO0dl8zjLad9Prk3hGJ0DQIeqffFGvzEemLTD52YgeDqWQHLXbk34.2之前是没有sign签名段的可以看到整个加密参数的值跟上次的4.2是有区别的同样经过多块组合拼接而成的 不过最新的以分号拆开大约分为8个部分了 第一部分是一个时间格式的字符串后续我们可以自行生成 第二部分则是fingerprint指纹这个是需要算法生成的第三部分可固定 第四部分tk则拼接多个参数加上指纹通过加密算法生成 第五部分签名Sign参数通过对Token、fingerprint、时间戳、APPID 第六部分分别是算法的版本号以及时间戳这个自行填写 第七部分时间戳 最后一部分的大长串则是上面参数经过最终AES加密生成 3. 算法还原 接下来这里作者按上面拆分出来的几部分附上扣出来的算法并附上粗浅的讲解第一部分的时间戳这里也给一下主打的就是喂饭时间参代码实现如下 function timestampToFormat(timestamp) {const date new Date(timestamp);const pad (num, size) String(num).padStart(size, 0);return ${date.getFullYear()}${pad(date.getMonth() 1, 2)}${pad(date.getDate(), 2)}${pad(date.getHours(), 2)}${pad(date.getMinutes(), 2)}${pad(date.getSeconds(), 2)}${pad(date.getMilliseconds(), 3)}; }第二部分我们需要还原的是FP的指纹加密算法实现如下 !function () {function t(e) {for (var t , r 0; r e.length;) {var n e.charCodeAt(r);t n 63 ? String.fromCharCode(32 ^ n) : 35 n ? e.charAt(r) : String.fromCharCode(n)}return t}var r [t(SIZE), num, t(SPLIT), , t(DEFAULT), t(CALL), t(PUSH), pop, t(TOsTRING), t(JOIN), t(DEFAULT), t(CALL), t(REPLACE), ], n Function.prototype.call,a [2, 66, 17, 98, 16, 25, 286, 76, 37, 17, 58, 16, 13, 25, -2821, 25, -8150, 68, 25, 10976, 68, 91, 74, 17, 26, 16, 4, 78, 17, 73, 16, 13, 7, 91, 62, 17, 36, 16, 32, 88, 80, 0, 46, 80, 1, 76, 7, 68, 36, 16, 32, 25, -3718, 25, 2322, 68, 25, 1412, 68, 25, 575, 25, 6105, 68, 25, -6675, 68, 3, 88, 3, 25, 6578, 25, -9306, 68, 25, 2729, 68, 3, 80, 0, 46, 80, 1, 76, 68, 88, 68, 5, 17, 48, 70, 2, 52, 3, 76, 54, 17, 63, 17, 60, 93, 4, 40, 72, 76, 70, 5, 72, 25, 8402, 25, -5374, 68, 25, -3028, 68, 25, -8134, 25, -8213, 68, 25, 16362, 68, 65, 71, 17, 63, 17, 60, 93, 4, 40, 72, 76, 70, 5, 72, 25, 6175, 25, 4230, 68, 25, -10390, 68, 91, 79, 17, 67, 0, 33, 17, 30, 45, 95, 70, 6, 25, -5057, 25, 6375, 68, 25, -1283, 68, 63, 17, 49, 93, 4, 40, 87, 70, 7, 4, 25, 3357, 25, -5902, 68, 25, 2581, 68, 91, 3, 70, 8, 25, -8817, 25, 8543, 68, 25, 310, 68, 76, 76, 17, 87, 51, 25, 8755, 25, -8004, 68, 25, -751, 68, 34, 42, -56, 63, 17, 69, 93, 4, 40, 95, 76, 70, 5, 95, 14, 91, 33, 17, 95, 70, 9, 52, 3, 76, 29, 17, 27, 90, 39, 73, -2215, 73, -5180, 68, 73, 7395, 68, 94, 58, 50, 44, 49, 58, 76, 21, 0, 71, 4, 93, 70, 1, 4, 11, 79, 22, 84, 55, 58, 82, 73, -6046, 73, -7717, 68, 73, 13764, 68, 2, 60, 86, 11, 4, 70, 2, 11, 79, 22, 98, 3, 84, 39, 58, 27, 58, 79, 11, 36, 74, 91, -48, 4, 90, 20], o zk, i Array.from, c Symbol, s eh, u Array.isArray, l Og.exports;var generateVisitKey function () {for (var e, t, o, i, c, s, u, l, p, v, d, _, x n, S a, A [], E 0; ;)switch (S[E]) {case 2:A.push(y);break;case 3:_ A.pop(),A[A.length - 1] - _;break;case 4:null ! A[A.length - 1] ? A[A.length - 2] x.call(A[A.length - 2], A[A.length - 1]) : (_ A[A.length - 2],A[A.length - 2] _()),A.length--;break;case 5:s A[A.length - 1];break;case 7:A.push(o);break;case 13:A.push(t);break;case 14:A.push(p);break;case 16:A.push(null);break;case 17:A.pop();break;case 25:A.push(S[E]);break;case 26:A.push(b);break;case 27:A.push(d);break;case 29:d A[A.length - 1];break;case 30:E S[E];break;case 32:A.push({});break;case 33:v A[A.length - 1];break;case 34:_ A.pop(),A[A.length - 1] A[A.length - 1] _;break;case 36:A.push(m);break;case 37:t A[A.length - 1];break;case 39:return;case 40:A.push(void 0);break;case 42:A.pop() ? E S[E] : E;break;case 46:A.push(c);break;case 48:A.push(s);break;case 49:A.push(h);break;case 51:A[A.length - 1] A[A.length - 1].length;break;case 52:A.push(r[S[E]]);break;case 54:u A[A.length - 1];break;case 58:A.push(k);break;case 60:A.push(f);break;case 62:c A[A.length - 1];break;case 63:A.push(0);break;case 65:A[A.length - 5] x.call(A[A.length - 5], A[A.length - 4], A[A.length - 3], A[A.length - 2], A[A.length - 1]),A.length - 4;break;case 66:e A[A.length - 1];break;case 67:A.push(new Array(S[E]));break;case 68:_ A.pop(),A[A.length - 1] _;break;case 69:A.push(g);break;case 70:A.push(A[A.length - 1]),A[A.length - 2] A[A.length - 2][r[S[E]]];break;case 71:l A[A.length - 1];break;case 72:A.push(u);break;case 73:A.push(w);break;case 74:o A[A.length - 1];break;case 76:null ! A[A.length - 2] ? (A[A.length - 3] x.call(A[A.length - 3], A[A.length - 2], A[A.length - 1]),A.length - 2) : (_ A[A.length - 3],A[A.length - 3] _(A[A.length - 1]),A.length - 2);break;case 78:i A[A.length - 1];break;case 79:p A[A.length - 1];break;case 80:A[A.length - 2][r[S[E]]] A[A.length - 1],A.length--;break;case 87:A.push(l);break;case 88:A.push(i);break;case 90:return A.pop();case 91:A[A.length - 4] x.call(A[A.length - 4], A[A.length - 3], A[A.length - 2], A[A.length - 1]),A.length - 3;break;case 93:A[A.length - 1] A[A.length - 1][r[S[E]]];break;case 95:A.push(v);break;case 98:A.push(e)}};var h l(nm), f l(zk), g l(j_), p l(Rk);function v(e, t) {var r void 0 ! c s(e) || e[iterator];if (!r) {if (u(e) || (r function (e, t) {var r;if (!e)return;if (string typeof e)return d(e, t);var n o(r Object.prototype.toString.call(e)).call(r, 8, -1);Object n e.constructor (n e.constructor.name);if (Map n || Set n)return i(e);if (Arguments n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e, t)}(e)) || t e number typeof e.length) {r (e r);var n 0, a function () {};return {s: a,n: function () {return n e.length ? {done: !0} : {done: !1,value: e[n]}},e: function (e) {throw e},f: a}}throw new TypeError(Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.)}var l, h !0, f !1;return {s: function () {r r.call(e)},n: function () {var e r.next();return h e.done,e},e: function (e) {f !0,l e},f: function () {try {h || null r.return || r.return()} finally {if (f)throw l}}}}function d(e, t) {(null t || t e.length) (t e.length);for (var r 0, n new Array(t); r t; r)n[r] e[r];return n}function b() {return 10 * Math.random() | 0}function y(e, t) {var r _();return y function (t, n) {var a r[t - 280];if (void 0 y.RpSzcS) {y.licQQm function (e) {for (var t, r, n abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/, a , o , i 0, c 0; r e.charAt(c); ~r (t i % 4 ? 64 * t r : r,i % 4) ? a String.fromCharCode(255 t (-2 * i 6)) : 0)r (0,p.default)(n).call(n, r);for (var s 0, u a.length; s u; s) {var l;o % (0,f.default)(l 00 a.charCodeAt(s).toString(16)).call(l, -2)}return decodeURIComponent(o)},e arguments,y.RpSzcS !0}var o t r[0].substring(0, 2), i e[o];return i ? a i : (a y.licQQm(a),e[o] a),a},y(e, t)}function k(e, t) {var r, n [], a e.length, o v(e);try {for (o.s(); !(r o.n()).done;) {var i r.value;if (Math.random() * a t (n.push(i),0 --t))break;a--}} catch (e) {o.e(e)} finally {o.f()}for (var c , s 0; s n.length; s) {var u Math.random() * (n.length - s) | 0;c n[u],n[u] n[n.length - s - 1]}return c}function m(e) {for (var t e.size, r e.num, n ; t--;)n r[Math.random() * r.length | 0];return n}function w(e, t) {for (var o, i, c, s n, u a, l [], h 239; ;)switch (u[h]) {case 2:l[l.length - 1] -l[l.length - 1];break;case 4:l.push(e);break;case 11:l.push(t);break;case 20:return;case 21:l[l.length - 1] l[l.length - 1][r[10 u[h]]];break;case 22:l[l.length - 2] l[l.length - 2][l[l.length - 1]],l.length--;break;case 27:l.push(o);break;case 36:l[l.length - 1] l[l.length - 1].length;break;case 39:e l[l.length - 1];break;case 49:l.push(0);break;case 50:h u[h];break;case 55:i l[l.length - 1];break;case 58:l.pop();break;case 60:c l.pop(),l[l.length - 1] l[l.length - 1] ! c;break;case 68:c l.pop(),l[l.length - 1] c;break;case 70:l.push(l[l.length - 1]),l[l.length - 2] l[l.length - 2][r[10 u[h]]];break;case 71:l.push(void 0);break;case 73:l.push(u[h]);break;case 74:c l.pop(),l[l.length - 1] l[l.length - 1] c;break;case 76:l.push(p);break;case 79:l.push(o);break;case 82:l.push(i);break;case 84:l[l.length - 4] s.call(l[l.length - 4], l[l.length - 3], l[l.length - 2], l[l.length - 1]),l.length - 3;break;case 86:l[l.length - 1] ? (h,--l.length) : h u[h];break;case 90:return l.pop();case 91:l.pop() ? h u[h] : h;break;case 93:null ! l[l.length - 2] ? (l[l.length - 3] s.call(l[l.length - 3], l[l.length - 2], l[l.length - 1]),l.length - 2) : (c l[l.length - 3],l[l.length - 3] c(l[l.length - 1]),l.length - 2);break;case 94:o l[l.length - 1];break;case 98:l.push(r[10 u[h]])}}function _() {var e [ndqXnZqYofn2uw90Ca, nJyYmtm3Cvrcvhvc, mty2ntG2nhrZsg9WtW, mJjMswjnv0C, mte5mte0nwP4ugrqAW, nNHJEvrWva, odiXmJqXnLf6vKfgvW, ouPpuNDkDa, mta0ntK5mgTPwM5TAW, mMT4AhLiDq, nZe3nJq4yKHWwunj, mxvJDdzKmgPOCq, mZbqBvzVCfu];return (_ function () {return e})()}!function (e, t) {for (var r y, n e(); ;)try {if (676921 -(0,h.default)(r(284)) / 1 * ((0,h.default)(r(285)) / 2) (0,h.default)(r(280)) / 3 * ((0,h.default)(r(290)) / 4) -(0,h.default)(r(292)) / 5 * ((0,h.default)(r(287)) / 6) (0,h.default)(r(289)) / 7 (0,h.default)(r(281)) / 8 * ((0,h.default)(r(282)) / 9) -(0,h.default)(r(283)) / 10 -(0,h.default)(r(291)) / 11 * (-(0,h.default)(r(288)) / 12))break;n.push(n.shift())} catch (e) {n.push(n.shift())}}(_) }();第三部分的APPID直接取AID即可这里不需要过多的分析 接下来就是第四部分的Token生成了加密算法实现如下所示 var getLocalTK; !function () {function t(e) {for (var t , r 0; r e.length;) {var n e.charCodeAt(r);t n 63 ? String.fromCharCode(53 ^ n) : 35 n ? e.charAt(r) : String.fromCharCode(n)}return t}var r [tk, t(XTR#iV), 03, t(CPGF#iZ[), w, t(EYTASZGX), 41, t(PME#iGPF), l, t(EGZQVPG), t(PMEG), t(V#iE]PG), t(TQYPG32), t(RPAgT[QZX|qeGZ), t(F#iOP), t(Q#iVAaLEP), t(VFAZXq#iVA), , t(QPSTYA), C2, t(ETGFP), t(P[VGLEA), t(_Z#i[), iv, t(SGZXwTFP64), t(FAG#i[R#iSL), t(V#iE]PGAPMA), t(QPSTYA), t(EGZAZALEP), t(VTYY), set, buf, t(AZfAG#i[R), t(FWFAG), t(V]TGvZQPtA), t(V]TGvZQPtA), t(V]TGvZQPtA), t(SYZZG), pow, t(FPA#i[A32), t(FPA|[A16), t(RPAgT[QZX|qeGZ), t(F#iOP), t(Q#iVAaLEP), t(VFAZXq#iVA), 1, 2, 3, , x, t(SYZZG), t(GT[QZX), , t(FWFAG), t(QPSTYA), t(ETGFP), t(FAG#i[R#iSL), t(SGZXwTFP64)], n Function.prototype.call,a [23, 64, 79, 28, 21, 0, 99, 1, 79, 28, 21, 2, 99, 3, 79, 28, 21, 4, 99, 5, 79, 28, 21, 6, 99, 7, 79, 28, 21, 8, 99, 9, 79, 28, 50, 11, 49, 99, 10, 79, 28, 12, 11, 53, 46, 99, 11, 79, 28, 24, 11, 28, 29, 1, 28, 29, 3, 17, 28, 29, 5, 17, 28, 29, 7, 17, 28, 29, 9, 17, 28, 29, 10, 17, 28, 29, 11, 17, 46, 99, 12, 79, 28, 29, 1, 28, 29, 3, 17, 28, 29, 5, 17, 28, 29, 12, 17, 28, 29, 7, 17, 28, 29, 9, 17, 28, 29, 10, 17, 28, 29, 11, 17, 51, 35, 45, 75, 54, 64, 54, 70, 20, 0, 63, 5, 4, 32, 69, 1, 28, 81, 4, 178, 40, 69, 2, 81, 69, 3, 40, 6, 54, 68, 4, 42, 54, 64, 54, 86, 20, 5, 63, 21, 61, 54, 68, 6, 99, 54, 28, 81, 4, 182, 40, 52, 54, 31, 81, 95, 16, 19, 10, 18, 38, 54, 26, 98, 81, 78, 40, 83, 42, 54, 26, 98, 81, 19, 40, 83, 42, 54, 26, 98, 81, 10, 40, 83, 42, 54, 26, 22, 81, 16, 40, 83, 42, 54, 26, 98, 81, 95, 40, 83, 42, 54, 97, 20, 5, 80, 7, 26, 40, 27, 54, 76, 20, 5, 80, 8, 39, 47, 20, 5, 80, 7, 77, 40, 5, 47, 20, 5, 80, 7, 29, 80, 9, 68, 4, 40, 40, 69, 10, 73, 89, 54, 64, 54, 70, 20, 11, 63, 56, 20, 5, 80, 12, 37, 20, 13, 40, 40, 88, 7, 14, 10, 70, 74, 20, 22, 253, 22, -2067, 96, 22, 1830, 96, 60, 52, 70, 17, 70, 98, 51, 0, 20, 97, 51, 1, 53, 25, 2, 75, 73, 19, 70, 65, 15, 49, 53, 91, 70, 74, 20, 22, -1530, 22, 415, 96, 22, 1117, 96, 60, 68, 70, 17, 70, 98, 51, 0, 20, 97, 51, 1, 53, 25, 2, 48, 92, 19, 70, 74, 20, 22, -7373, 22, 4503, 96, 22, 2882, 96, 60, 16, 70, 17, 70, 98, 51, 0, 20, 97, 51, 1, 53, 25, 2, 81, 84, 19, 70, 74, 20, 22, 5169, 22, -9153, 96, 22, 4022, 96, 60, 30, 70, 33, 25, 3, 48, 53, 70, 33, 25, 3, 81, 22, -7348, 22, 4861, 96, 22, 2489, 96, 19, 70, 33, 25, 3, 43, 22, -7830, 22, -2494, 96, 22, 10338, 96, 19, 70, 33, 25, 3, 75, 22, 6556, 22, -649, 96, 22, -5885, 96, 19, 70, 13, 51, 0, 25, 4, 33, 53, 71, 70, 83, 22, 8329, 22, -2927, 96, 22, -5402, 96, 21, 71, 70, 76, 15, 22, 187, 53, 83, 25, 5, 22, -3433, 22, 1157, 96, 22, 2292, 96, 53, 96, 72, 70, 47, 25, 6, 47, 32, 22, -47, 22, -1896, 96, 22, 1951, 96, 86, 53, 89, 57, 79, 77, 67, 12, 0, 77, 56, 62, 4, 30, 23, 45, 87, 9, 0, 45, 15, 62, 95, 16, 2, 51, 30, 44, 0, 51, 4, 24, 1, 7, 69, 24, 64, 5, 42, 77, 78, 0, 98, 77, 78, 1, 65, 6751, 65, -342, 81, 65, -6407, 81, 65, 5336, 65, -6432, 81, 65, 1128, 81, 72, 95, 13, 85, 42, 98, 77, 78, 1, 65, -310, 65, 8475, 81, 65, -8163, 81, 65, 32, 72, 88, 1, 42, 94, 24, 65, 5048, 65, -9090, 81, 65, 4050, 81, 2, 67, 42, 8, 24, 32, 2, 37, 42, 12, 71, 32, 16, 78, 2, 65, -5825, 65, -8303, 81, 65, 14128, 81, 47, 12, 34, 42, 16, 78, 2, 65, -4393, 65, -6070, 81, 65, 10467, 81, 56, 12, 34, 80, 30, 16, 78, 2, 65, -8374, 65, -5679, 81, 65, 14053, 81, 56, 12, 34, 42, 16, 78, 2, 65, 5472, 65, -7245, 81, 65, 1777, 81, 47, 12, 34, 42, 52, 24, 32, 2, 20, 93, 94, 60, 29, 2, 79, 92, 78, 62, 60, 1, 79, 59, 0, 29, -4658, 29, -4430, 87, 29, 9088, 87, 29, 6433, 29, 9036, 87, 29, -15213, 87, 48, 0, 85, 85, 97, 78, 27, 60, 1, 79, 29, 6857, 29, -8577, 87, 29, 1720, 87, 4, 29, -353, 29, -2847, 87, 29, 3456, 87, 42, 37, 99, 2, 7, 71, 62, 71, 30, 63, 0, 29, 12, 35, 32, 93, 1, 18, 8, 35, 178, 48, 93, 2, 8, 93, 3, 48, 85, 71, 36, 3, 62, 53, 4, 17, 92, 53, 5, 17, 35, 2, 53, 6, 17, 24, 71, 36, 2, 62, 53, 7, 17, 92, 53, 8, 17, 27, 71, 35, -1160, 35, -3905, 84, 35, 5067, 84, 21, 45, 9, 21, 45, 10, 14, 35, 5398, 35, 8267, 84, 35, -13661, 84, 78, 48, 84, 81, 71, 53, 11, 83, 71, 35, 6113, 35, -8607, 84, 35, 2494, 84, 22, 71, 41, 63, 61, 59, 21, 45, 9, 21, 45, 10, 14, 35, 4505, 35, -8459, 84, 35, 3957, 84, 78, 48, 31, 84, 83, 71, 3, 49, 35, -7624, 35, 707, 84, 35, 6918, 84, 76, 97, 95, 23, 61, 60, 21, 45, 9, 21, 45, 10, 14, 35, -7093, 35, -9161, 84, 35, 16256, 84, 78, 48, 31, 84, 83, 71, 56, 71, 3, 49, 97, 86, -66, 61, 69, 35, -8937, 35, -657, 84, 35, 9603, 84, 97, 95, 27, 61, 1, 45, 12, 35, -1991, 35, -3690, 84, 35, 5681, 84, 35, 3277, 35, -1882, 84, 35, -1386, 84, 61, 69, 76, 32, 84, 83, 71, 38, 63, 13, 45, 14, 61, 48, 94, 71, 23, 63, 13, 45, 15, 15, 48, 19, 71, 62, 71, 30, 63, 16, 29, 74, 48, 65, 44], o Og.exports;var genLocalTK function (e) {for (var t, o, i n, c a, s [], u 0; ;)switch (c[u]) {case 11:s.push(null);break;case 12:s.push(x);break;case 17:o s.pop(),s[s.length - 1] o;break;case 21:s.push(r[c[u]]);break;case 23:s.push({});break;case 24:s.push(_);break;case 28:s.push(t);break;case 29:s[s.length - 1] s[s.length - 1][r[c[u]]];break;case 35:return;case 46:null ! s[s.length - 2] ? (s[s.length - 3] i.call(s[s.length - 3], s[s.length - 2], s[s.length - 1]),s.length - 2) : (o s[s.length - 3],s[s.length - 3] o(s[s.length - 1]),s.length - 2);break;case 49:null ! s[s.length - 1] ? s[s.length - 2] i.call(s[s.length - 2], s[s.length - 1]) : (o s[s.length - 2],s[s.length - 2] o()),s.length--;break;case 50:s.push(j);break;case 51:return s.pop();case 53:s.push(e);break;case 64:t s[s.length - 1];break;case 79:s.pop();break;case 99:s[s.length - 2][r[c[u]]] s[s.length - 1],s[s.length - 2] s[s.length - 1],s.length--}};var i o(nm), c o(cm), s o(Rk), u o(zk), l o(xm), h o(Om), f vx, g o(eA.exports), p o(rA.exports), v o(tA.exports), d o($S.exports), b o(yA), y S;!function (e, t) {for (var r S, n e(); ;)try {if (569306 (0,i.default)(r(173)) / 1 (0,i.default)(r(175)) / 2 * (-(0,i.default)(r(188)) / 3) -(0,i.default)(r(179)) / 4 * (-(0,i.default)(r(177)) / 5) (0,i.default)(r(174)) / 6 * ((0,i.default)(r(184)) / 7) -(0,i.default)(r(186)) / 8 -(0,i.default)(r(180)) / 9 * ((0,i.default)(r(183)) / 10) -(0,i.default)(r(176)) / 11 * ((0,i.default)(r(181)) / 12))break;n.push(n.shift())} catch (e) {n.push(n.shift())}}(w);var k y(185), m [01, 02, 03, 04, 05, 06, 07, 08];function w() {var e [mdaWmdaWmda, ndK0nZLNr3vswMW, mta0mZy5owvft0Lhzq, mta0odjODNngCKO, ndbvqvzcq1i, ode3m2DqBxjfta, mZG3ndyZmhjSvxfsEa, Bwf4, nhPZsurozW, nJCXmJaYovbVwKfNvW, nJi2nhzjqMnZsq, sZnYt3fntdbrCsze, mtbIu0Xbuhi, mZK2mKrLBwH2zG, puyPp243qf1prLG2mMjunq, nJe5nZa3mNjJuK5xrq];return (w function () {return e})()}function _(e) {var t y, r b.default.str(e);r 0;var n t(187) r.toString(16);return n.substr(n.length - 8)}function S(e, t) {var r w();return S function (t, n) {var a r[t - 173];if (void 0 S.zUShtv) {S.CXUmZy function (e) {for (var t, r, n abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/, a , o , i 0, c 0; r e.charAt(c); ~r (t i % 4 ? 64 * t r : r,i % 4) ? a String.fromCharCode(255 t (-2 * i 6)) : 0)r (0,s.default)(n).call(n, r);for (var l 0, h a.length; l h; l) {var f;o % (0,u.default)(f 00 a.charCodeAt(l).toString(16)).call(f, -2)}return decodeURIComponent(o)},e arguments,S.zUShtv !0}var o t r[0].substring(0, 2), i e[o];return i ? a i : (a S.CXUmZy(a),e[o] a),a},S(e, t)}function E(e) {return (0,h.default)(Array.prototype).call(e, (function (e) {var t;return (0,u.default)(t 00 (255 e).toString(16)).call(t, -2)})).join()}function C(e) {var t new Uint8Array(e.length);return (0,l.default)(Array.prototype).call(t, (function (t, r, n) {n[r] e.charCodeAt(r)})),E(t)}function O(e) {return E(T(e))}getLocalTK genLocalTK }();直接调用getLocalTK入参则是上面的get_fingerprint指纹值 第五部分的Sign签名其实算比较复杂的一部分了多参数参与了加密核心算法实现如下 !function () {function t(e) {for (var t , r 0; r e.length;) {var n e.charCodeAt(r);t n 63 ? String.fromCharCode(24 ^ n) : 35 n ? e.charAt(r) : String.fromCharCode(n)}return t}var r [, t(|}~ymtl), t(kljqv#gq~a), t(hyjk}), t(lwZyk}64), t(GGhyjk}Lws}v), t(uyl{p), t(FC123E(CEC123E)), t(khtql), t(G|}~ymtlYt#gwjqlpu), t({ytt), log, t(G|}zm#g), , t(TW[YTGYT_WJQLPUGHJ]^Q), , x, t(GGyt#gwjqlpu), t(|}~ymtl), t({ytt), t(|}~ymtl), t({ytt), t(rwqv), , t(lwKljqv#g), log, t(G|}zm#g), key, :, t(nytm}), , t(|}~ymtl), t(~wjuyl), 07, t(GqkVwjuyt), t(GG#g}vS}a), t(Glws}v), t(G~qv#g}jhjqvl), t(GyhhQ|), t(yt#gwk), t(lwKljqv#g), t(#g}vTw{ytLS), t(G|}~ymtlLws}v), t(GG#g}v#D}~ymtlS}a), t(GG#g}vKq#gv), t({ytt), t(rwqv), ,, t(]VNQJWVU]VL), t(GG#g}vKq#gvHyjyuk), log, t(G|}zm#g), key, t(kq#gvKlj), t(Gkls), t(Gkl}), t(p5kl), t(GwvKq#gv), t({w|}), t(u}kky#g}), t(Gn}jkqwv), v, t(GGRKGK][MJQLAGN]JKQWV), t(kmzGn), t(}l}v|), t(]jj[w|}k), t(_]V]JYL]GKQ_VYLMJ]G^YQT]#D), t(LWS]VG]UHLA), key, t(}vn[wtt}{l), t(G~qv#g}jhjqvl), fp, t(Gzm{s}l), t(|}~ymtl), log, t(G|}zm#g), t(}v{jahl), t(hyjk}), 01, 02, 03, 04, 05, 06, 07, 08, t(rwqv), , iv, t(}v{w|}), t({qhp}jl}l), t(|}~ymtl), t(ojyh), t(v}l), t(hj}n), 0, 5, 10, 13, end, t(|}~ymtl), t(GG{p}{sHyjyuk), t(yzjmhl), t(j}lmjv), t(GGj}im}kl#D}hk), t(GG{wtt}{l), t(GGuys}Kq#gv), log, t(G|}zm#g), ms, t({yl{p), t0, t(GwvKq#gv), t(]jj[w|}k), t(MVPYV#DT]#DG]JJWJ), t({w|}), t(u}kky#g}), t(Gn}jkqwv), v, t(GGRKGK][MJQLAGN]JKQWV), t(kmzGn), t(}l}v|), t(klwh)], n Function.prototype.call,o [75, 1, 29, 51, 66, 29, 41, 0, 21, 29, 91, 68, 76, 397, 15, 79, 29, 41, 0, 3, 96, 40, 96, 4, 96, 56, 96, 90, 96, 53, 29, 16, 30, 1, 44, 2, 6, 30, 1, 44, 3, 88, 29, 85, 30, 4, 22, 75, 44, 5, 3, 76, 6038, 76, 6806, 96, 76, -12828, 96, 76, 4468, 76, -656, 96, 76, -3784, 96, 35, 15, 15, 15, 72, 29, 57, 44, 6, 37, 7, 15, 84, 29, 81, 77, 43, 81, 76, 8106, 76, 2295, 96, 76, -10401, 96, 9, 33, 29, 23, 44, 8, 41, 0, 15, 50, 29, 31, 9, 71, 29, 41, 0, 18, 29, 88, 29, 48, 30, 1, 22, 26, 15, 44, 10, 26, 32, 36, 29, 88, 29, 85, 30, 11, 22, 31, 12, 91, 68, 76, 413, 15, 62, 96, 91, 68, 76, 376, 15, 96, 57, 96, 91, 68, 76, 405, 15, 96, 87, 96, 36, 29, 87, 43, 98, 31, 32, 15, 41, 69, 96, 12, 43, 64, 85, 0, 48, 28, 1, 26, 69, 26, 90, 32, 62, 30, 5, 43, 47, 92, 80, 33, 2, 2, 6, 3, 22, 85, 0, 46, 26, 33, 87, 4, 30, 51, 7, 98, 26, 75, 32, 72, 23, 33, 87, 4, 30, 46, 7, 98, 75, 32, 72, 12, 33, 87, 4, 30, 51, 7, 98, 75, 32, 72, 1, 72, 38, 50, 32, 91, 28, 5, 83, 95, 2, 50, 85, 2, 2, 8, 85, 3, 2, 40, 96, 87, 6, 31, 69, 23, 74, 7495, 74, -6716, 26, 74, -779, 26, 59, 68, 3, 69, 65, 32, 53, 62, 47, 35, 25, 35, 93, 98, 0, 53, 34, 75, 50, 1, 34, 14, 72, 50, 2, 8, 3, 75, 95, 35, 25, 35, 96, 98, 0, 53, 85, 88, 72, 50, 4, 58, 98, 0, 75, 4, 35, 25, 35, 69, 98, 5, 53, 73, 6, 91, 2, 26, 399, 75, 85, 80, 91, 2, 26, 414, 75, 80, 28, 80, 72, 35, 28, 10, 52, 76, 7, 0, 61, 1, 65, 76, 7, 2, 65, 75, 16, 93, 98, 84, 92, 0, 37, 84, 19, 84, 22, 26, 1, 67, 4, 91, 84, 19, 84, 14, 26, 2, 67, 38, 18, 76, 63, 406, 65, 90, 11, 84, 35, 92, 3, 53, 83, 84, 74, 4, 16, 24, 42, 36, 5, 74, 6, 74, 7, 20, 74, 8, 74, 9, 17, 36, 10, 4, 95, 3, 92, 0, 37, 82, 26, 42, 19, 84, 29, 26, 11, 67, 74, 7, 65, 25, 12, 84, 42, 36, 13, 74, 12, 74, 7, 20, 74, 8, 88, 37, 84, 69, 5, 84, 57, 16, 136, 42, 36, 14, 57, 45, 90, 21, 84, 19, 84, 3, 26, 1, 67, 45, 65, 36, 15, 45, 8, 90, 36, 16, 92, 17, 65, 2, 84, 40, 26, 18, 12, 84, 42, 36, 19, 62, 38, 35, 34, 88, 41, 84, 19, 84, 59, 26, 20, 67, 74, 21, 18, 76, 63, 375, 65, 19, 84, 27, 26, 1, 67, 69, 57, 32, 22, 62, 32, 23, 33, 32, 24, 52, 32, 25, 54, 32, 26, 76, 63, 1119, 63, -3077, 53, 63, 1960, 53, 58, 53, 90, 84, 69, 33, 32, 24, 52, 32, 25, 54, 32, 26, 5, 84, 42, 36, 27, 69, 19, 32, 28, 18, 76, 63, 394, 65, 32, 29, 69, 74, 30, 32, 31, 40, 26, 32, 32, 33, 32, 34, 65, 84, 86, 39, 82, 76, 74, 6, 95, 3, 74, 12, 16, 34, 42, 36, 27, 69, 31, 26, 35, 26, 36, 32, 28, 18, 76, 63, 373, 65, 32, 29, 69, 74, 30, 32, 31, 40, 26, 32, 32, 33, 32, 34, 65, 82, 32, 42, 36, 27, 69, 31, 26, 35, 26, 37, 32, 28, 18, 76, 63, 381, 65, 32, 29, 69, 74, 30, 32, 31, 40, 26, 32, 32, 33, 32, 34, 65, 84, 86, 39, 1, 24, 61, 0, 40, 41, 41, 52, 8, 61, 8, 89, 92, 0, 44, 45, 5394, 45, 7249, 87, 45, -12642, 87, 15, 39, 8, 69, 27, 1, 95, 2, 8, 69, 11, 83, 45, 415, 15, 27, 3, 3, 8, 69, 11, 83, 45, 368, 15, 19, 11, 83, 45, 365, 15, 69, 11, 83, 45, 368, 15, 19, 11, 83, 45, 365, 15, 19, 45, 6472, 45, -4012, 87, 45, -2460, 87, 24, 40, 12, 45, 9932, 45, -4858, 87, 45, -5073, 87, 67, 51, 14, 69, 11, 83, 45, 368, 15, 19, 11, 83, 45, 365, 15, 19, 3, 8, 61, 8, 46, 92, 4, 44, 69, 83, 45, -8946, 45, 8447, 87, 45, 501, 87, 10, 36, 8, 61, 8, 16, 92, 5, 44, 27, 6, 11, 83, 45, 421, 15, 31, 87, 12, 8, 42, 92, 4, 20, 7, 31, 70, 92, 4, 20, 8, 11, 83, 45, 389, 15, 15, 74, 70, 92, 4, 20, 8, 50, 8, 61, 13, 9, 94, 84, 13, 10, 94, 45, 2, 13, 11, 94, 45, 3, 13, 12, 94, 45, 4, 13, 13, 94, 45, 5, 13, 14, 94, 45, 6, 13, 15, 94, 45, 7, 13, 16, 94, 20, 17, 13, 18, 15, 15, 33, 19, 10, 18, 8, 62, 92, 4, 20, 20, 79, 92, 21, 15, 5, 82, 46, 24, 58, 24, 35, 24, 65, 24, 23, 24, 72, 86, 0, 42, 1, 75, 13, 11, 21, 1, 87, 21, 2, 87, 89, 91, 89, 28, 10, 91, 91, 60, 15, 36, 76, 194, 75, 75, 23, 0, 17, 1, 35, 186, 5, 2, 12, 3, 58, 4, 122, 5, 181, 6, 181, 43, 19, 25, 75, 47, 17, 1, 25, 85, 25, 80, 23, 7, 61, 32, 97, 25, 44, 3, 8, 98, 94, 51, 25, 79, 21, 91, 77, 58, 9, 75, 2, 5, 17, 0, 25, 76, 137, 75, 3, 9, 68, 10, 98, 78, 88, 44, 3, 11, 32, 25, 44, 3, 12, 32, 29, 25, 44, 3, 13, 79, 12, 78, 28, 25, 75, 3, 9, 68, 10, 85, 25, 7, 23, 14, 61, 83, 15, 31, 21, 2, 374, 94, 85, 25, 80, 23, 7, 61, 32, 74, 34, 56, 68, 16, 56, 78, 25, 85, 25, 46, 23, 7, 61, 4, 98, 90, 70, 78, 88, 75, 2, 10, 17, 1, 25, 75, 75, 3, 17, 47, 94, 17, 18, 25, 75, 3, 9, 68, 10, 44, 3, 19, 4, 89, 23, 20, 23, 21, 99, 22, 31, 21, 2, 401, 94, 75, 23, 18, 56, 99, 23, 4, 83, 24, 99, 25, 63, 23, 26, 99, 27, 99, 28, 94, 25, 98, 78, 88, 75, 3, 29, 32, 88, 55, 66, -195, 30], i a.exports, l Og.exports;var v l(Rk), d l(zk), b l(nm), y l(cm), m l(xm), w l(Om), O Lx, R l($S.exports), z l(eA.exports), L l(tA.exports), I l(rA.exports), B l(cA.exports), N l(R_.exports), G l(sA.exports), F l(uA.exports), H l(hA.exports), W l(fA.exports), U vx;function Z(e, t) {var r V();return Z function (t, n) {var a r[t - 339];if (void 0 Z.kfjFYr) {Z.VsajSZ function (e) {for (var t, r, n abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/, a , o , i 0, c 0; r e.charAt(c); ~r (t i % 4 ? 64 * t r : r,i % 4) ? a String.fromCharCode(255 t (-2 * i 6)) : 0)r (0,v.default)(n).call(n, r);for (var s 0, u a.length; s u; s) {var l;o % (0,d.default)(l 00 a.charCodeAt(s).toString(16)).call(l, -2)}return decodeURIComponent(o)},e arguments,Z.kfjFYr !0}var o t r[0].substring(0, 2), i e[o];return i ? a i : (a Z.VsajSZ(a),e[o] a),a},Z(e, t)}function V() {var e [x19Yzxf1zxn0rgvWCYb1C2uGy2fJAguGzNaSigzWoG, x19JB2XSzwn0igvUDKnVBgXLy3q9, x19Yzxf1zxn0qwXNB3jPDgHTt25Jzq, x19Yzxf1zxn0qwXNB3jPDgHTihjLCxvLC3qGC3vJy2vZCYeSignOzwnRig1LBw9YEsbMCdO, x19HBgDVCML0Ag0, nJuYodqWB0nXwfPp, x19Yzxf1zxn0rgvWCW, x19Nzw5tAwDUugfYyw1Z, CgfYyw1ZigLZig5VDcbHihbSywLUig9IAMvJDa, x19Yzxf1zxn0rgvWCYbYzxf1zxn0ihrVA2vUigzHAwXLzcWGzxjYB3i6ia, CMvXDwvZDcb0B2TLBIbMywLSzwqGA2v5oG, ihrVA2vUoG, ExL5Eu1nzgq, Bg9HzcbYywmGANmGzMfPBce, x19WyxjZzufSz29YAxrOBq, x19Yzxf1zxn0qwXNB3jPDgHTigvUDKnVBgXLy3q9, CgfYyw1ZigLZigvTChr5igfMDgvYigv4y2X1zgLUzYaIDw5ZywzLiIbWyxjHBxm, x19JAgvJA1bHCMfTCW, nc43, Bg9JywXFA2v5xZm, x19Yzxf1zxn0qwXNB3jPDgHTt25JzsbRzxK6, lcbYzxrYEsbUzxH0ihrPBwuU, x19Yzxf1zxn0rgvWCYbMCM9TignHy2HLlcbLBMqU, lcbJAgvJAYbZDg9YywDLigzWoG, C2v0DgLUz3mUyxbWswqGBxvZDcbIzsbHig5VBI1LBxb0EsbZDhjPBMC, x19JB2XSzwn0, C2LNBG, CxvLCNLtzwXLy3rVCG, yNuY, BdfMBa, lcbZDg9YywDLrNa6, zxH0zw5K, Ahr0Chm6lY9ZDg9YywDLlJm2mgj1EwLTzY5JB20VD2vIy29UDgfPBMvYl21HAw4VANmTC2vJDxjPDhKTDJmTCMfJlMPZp3y9, BwfPBI5ZAwDUi19Fzgv0zwn0Aw5N, DxnLig5VCM1HBfrVA2vU, x19Yzxf1zxn0rgvWCYWGx19WyxjZzufSz29YAxrOBsbYzxn1Bhq6, z2vUzxjHDguGA2v5igzHAwXLza, C2LNBIbLBgfWC2vKihrPBwuH, x19TywTLu2LNBIWGCMvZDwX0oG, lgv4ChjLC3m9, mtq0mtC3nKjKwLDQwG, x19WyxjZzvrVA2vU, x19Yzxf1zxn0rgvWCYbLBMqU, z2v0vg9Rzw5F, Dg9Rzw4GAxmGzw1WDhK, mcfa, CMv0DxjUia, lcbHBgDVoG, lcbFBg9HzgvKx2nHy2HLCZO, CgfYyw1ZigLZigvTChr5, x19Yzxf1zxn0qwXNB3jPDgHTigvUzc4, y3jLyxrLigLUC3rHBMnLihDPDgGGyxbWswq9, x002wt9KDMzondbwtuzBwa, CgfYyw1ZignVBNrHAw5ZihjLC2vYDMvKihbHCMfTig5HBwuU, DgvZDcbLCNi, ntC5mdG5B0PlCuTl, x19TywTLu2LNBG, C3vJy2vZCW, x19Yzxf1zxn0qwXNB3jPDgHTihn0yxj0lG, CYnS, odDUoceT, nteZode4mNDTwKjxBq, x19Nzw5tAwDUlcbWyxjHBxntDhi6, lcbLpq, Dw5RBM93BIbLCNjVCI4, x19PBMLdB25MAwC, nduXmtiWBhHjDKDU, Bg9HzcbYywmGANmGC3vJy2vZCYe, lgTLEt0, ExL5Eu1nzgrOAg1TC3ntu1m, mtGXnZm0nKrtDKPRwG, x19Yzxf1zxn0rgvWCYbZDgfYDc4, x19Nzw5tAwDU, lcb0B2TLBJO, lcbMCdO, mZe0mdGYsuHeC3rs, x19Nzw5ezwzHDwX0s2v5igLUChv0pq, lcbZAwDUzwrtDhi6, yNuX, x19Nzw5ezwzHDwX0s2v5, BwfPBI5ZAwDUi19FCMvXDwvZDerLChm, x19Yzxf1zxn0qwXNB3jPDgHT, x19Yzxf1zxn0rgvWCYb1C2uGBMv3igzWlcbMCdO];return (V function () {return e})()}var X Z;(function (e, t) {for (var r Z, n e(); ;)try {if (296934 -(0,b.default)(r(392)) / 1 -(0,b.default)(r(342)) / 2 -(0,b.default)(r(412)) / 3 (0,b.default)(r(377)) / 4 -(0,b.default)(r(403)) / 5 (0,b.default)(r(407)) / 6 (0,b.default)(r(398)) / 7)break;n.push(n.shift())} catch (e) {console.log(e)n.push(n.shift())}})(V);var __parseToken function (e, t, r) {return e ? vk(e).call(e, t, r) : }, _defaultAlgorithm {local_key_1: CryptoJS.MD5,local_key_2: CryptoJS.SHA256,local_key_3: CryptoJS.HmacSHA256}, algos {MD5: CryptoJS.MD5,SHA256: CryptoJS.SHA256,SHA512: CryptoJS.SHA512,HmacSHA256: CryptoJS.HmacSHA256,HmacSHA512: CryptoJS.HmacSHA512,HmacMD5: CryptoJS.HmacMD5}, __algorithm function (e, t, r) {var n X, a this._defaultAlgorithm[e];return e local_key_3 ? a(t, r).toString(CryptoJS.enc.Hex) : a(t).toString(CryptoJS.enc.Hex)};var _this {__parseToken: __parseToken,__algorithm: __algorithm,_defaultAlgorithm: _defaultAlgorithm,algos: algos};var genDefaultKey function (e, t, a, i) {for (var c, s, u, l, h, f, g, p, d, b, y, k, w n, _ o, x [], S 0; ;)switch (_[S]) {case 1:c x[x.length - 1];break;case 3:x.push(e);break;case 4:x.push(a);break;case 6:x.push(R);break;case 9:x[x.length - 2] x[x.length - 2][x[x.length - 1]],x.length--;break;case 15:null ! x[x.length - 2] ? (x[x.length - 3] w.call(x[x.length - 3], x[x.length - 2], x[x.length - 1]),x.length - 2) : (k x[x.length - 3],x[x.length - 3] k(x[x.length - 1]),x.length - 2);break;case 16:x.push(L);break;case 18:y x[x.length - 1];break;case 21:u x[x.length - 1];break;case 22:x.push(void 0);break;case 23:x.push(p);break;case 26:x.push(d);break;case 29:x.pop();break;case 30:x[x.length - 1] x[x.length - 1][r[_[S]]];break;case 31:x.push(_this[r[_[S]]]);break;case 32:x.push((function (t) {var a, i, s, l, f n, g o, p [], d 162;e: for (; ;)switch (g[d]) {case 2:p[p.length - 3][p[p.length - 2]] p[p.length - 1],p.length - 2;break;case 5:p[p.length - 2] p[p.length - 2][p[p.length - 1]],p.length--;break;case 7:p.push(e);break;case 8:p.push(1);break;case 12:p[p.length - 1] !p[p.length - 1];break;case 15:p.push(isNaN);break;case 23:p[p.length - 4] f.call(p[p.length - 4], p[p.length - 3], p[p.length - 2], p[p.length - 1]),p.length - 3;break;case 26:s p.pop(),p[p.length - 1] s;break;case 28:p[p.length - 1] p[p.length - 1][r[13 g[d]]];break;case 30:p.push(i);break;case 31:p.push(a);break;case 32:p.pop();break;case 33:p.push(c);break;case 40:a p[p.length - 1];break;case 41:p.push(null);break;case 43:p.pop() ? d : d g[d];break;case 46:p.push(u);break;case 48:p.push(O);break;case 50:p.push(0);break;case 51:p.push(h);break;case 53:return;case 59:s p.pop(),p[p.length - 1] p[p.length - 1] s;break;case 62:p.push(b);break;case 65:y p[p.length - 1];break;case 68:p[p.length - 1] ? (d,--p.length) : d g[d];break;case 69:p.push(t);break;case 72:d g[d];break;case 74:p.push(g[d]);break;case 75:u p[p.length - 1];break;case 80:for (s p.pop(),l 0; l g[d 1]; l)if (s r[13 g[d 2 * l 2]]) {d g[d 2 * l 3];continue e}d g[d];break;case 83:p.push(void 0);break;case 85:p.push(r[13 g[d]]);break;case 87:p.push(p[p.length - 1]),p[p.length - 2] p[p.length - 2][r[13 g[d]]];break;case 90:i p[p.length - 1];break;case 91:p.push(v);break;case 92:p.push(y);break;case 95:p.push(new Array(g[d]));break;case 96:null ! p[p.length - 2] ? (p[p.length - 3] f.call(p[p.length - 3], p[p.length - 2], p[p.length - 1]),p.length - 2) : (s p[p.length - 3],p[p.length - 3] s(p[p.length - 1]),p.length - 2);break;case 98:p[p.length - 5] f.call(p[p.length - 5], p[p.length - 4], p[p.length - 3], p[p.length - 2], p[p.length - 1]),p.length - 4}}));break;case 33:p x[x.length - 1];break;case 35:x[x.length - 5] w.call(x[x.length - 5], x[x.length - 4], x[x.length - 3], x[x.length - 2], x[x.length - 1]),x.length - 4;break;case 36:x[x.length - 4] w.call(x[x.length - 4], x[x.length - 3], x[x.length - 2], x[x.length - 1]),x.length - 3;break;case 37:x.push(new RegExp(r[_[S]]));break;case 40:x.push(t);break;case 41:x.push(r[_[S]]);break;case 43:return x.pop();case 44:x.push(x[x.length - 1]),x[x.length - 2] x[x.length - 2][r[_[S]]];break;case 48:x.push(m);break;case 50:d x[x.length - 1];break;case 51:x.push(X);break;case 53:h x[x.length - 1];break;case 56:x.push(i);break;case 57:x.push(f);break;case 62:x.push(h);break;case 66:s x[x.length - 1];break;case 68:x.push(null);break;case 71:b x[x.length - 1];break;case 72:f x[x.length - 1];break;case 75:x.push(_this);break;case 76:x.push(_[S]);break;case 77:x.pop() ? S : S _[S];break;case 79:l x[x.length - 1];break;case 81:x.push(g);break;case 84:g x[x.length - 1];break;case 85:x.push(U);break;case 87:x.push(u);break;case 88:x.push(0);break;case 90:x.push(l);break;case 91:x.push(s);break;case 96:k x.pop(),x[x.length - 1] k;break;case 98:return}};var genSign function (e, t) {for (var a, i, c, s, u n, l o, h [], f 272; ;)switch (l[f]) {case 2:h.push(null);break;case 4:c h[h.length - 1];break;case 8:h.push(r[20 l[f]]);break;case 10:return h.pop();case 14:h.push((function (e) {for (var t, n o, a [], i 340; ;)switch (n[i]) {case 7:a[a.length - 1] a[a.length - 1][r[27 n[i]]];break;case 16:return;case 61:a.push(r[27 n[i]]);break;case 65:t a.pop(),a[a.length - 1] t;break;case 75:return a.pop();case 76:a.push(e)}}));break;case 25:h.push(0);break;case 26:h.push(l[f]);break;case 28:h.push(c);break;case 34:h.push(t);break;case 35:h.pop();break;case 47:a h[h.length - 1];break;case 50:h.push(h[h.length - 1]),h[h.length - 2] h[h.length - 2][r[20 l[f]]];break;case 52:return;case 53:h.push(void 0);break;case 58:h.push(z);break;case 62:h.push(X);break;case 69:h.push(U);break;case 72:h[h.length - 4] u.call(h[h.length - 4], h[h.length - 3], h[h.length - 2], h[h.length - 1]),h.length - 3;break;case 73:h.push(_this[r[20 l[f]]]);break;case 75:null ! h[h.length - 2] ? (h[h.length - 3] u.call(h[h.length - 3], h[h.length - 2], h[h.length - 1]),h.length - 2) : (s h[h.length - 3],h[h.length - 3] s(h[h.length - 1]),h.length - 2);break;case 80:s h.pop(),h[h.length - 1] s;break;case 85:h.push(i);break;case 88:h.push(e);break;case 91:h.push(a);break;case 93:h.push(w);break;case 95:i h[h.length - 1];break;case 96:h.push(G);break;case 98:h[h.length - 1] h[h.length - 1][r[20 l[f]]]}};先调用genDefaultKey入参是四个分别是上面得到的Token、FP、APPID、时间戳07拿到值再调用签名函数getSign入参数则是genDefaultKey的值加params如下所示 params {functionId: mzhprice_getCustomRealPriceInfoForColor,appid: search-pc-java,client: pc,clientVersion: 1.0.0,t: str(int(time.time() * 1000)),body: {skuPriceInfoRequestList:[{skuId:10105124153052},{skuId:10102973236034},{skuId:10060158269227},{skuId:10085438117915},{skuId:100023408281},{skuId:10034095072591},{skuId:10099066159774},{skuId:10102882832111},{skuId:10081102086006},{skuId:10102882779610},{skuId:10105124220789},{skuId:10102882813512},{skuId:10102882813511},{skuId:10105124218483},{skuId:100114410144},{skuId:10093665009265},{skuId:10039552855611},{skuId:10036842860178},{skuId:11677624998},{skuId:26616715173}],area:19_1659_37260_37346,source:search_pc,fields:11101100111001}, }注意其中body需要经过SHA256加密实现算法如下所示 function GEN_SHA256(s) {var chrsz 8;var hexcase 0;function safe_add(x, y) {var lsw (x 0xFFFF) (y 0xFFFF);var msw (x 16) (y 16) (lsw 16);return (msw 16) | (lsw 0xFFFF)}function S(X, n) {return (X n) | (X (32 - n))}function R(X, n) {return (X n)}function Ch(x, y, z) {return ((x y) ^ ((~x) z))}function Maj(x, y, z) {return ((x y) ^ (x z) ^ (y z))}function Sigma0256(x) {return (S(x, 2) ^ S(x, 13) ^ S(x, 22))}function Sigma1256(x) {return (S(x, 6) ^ S(x, 11) ^ S(x, 25))}function Gamma0256(x) {return (S(x, 7) ^ S(x, 18) ^ R(x, 3))}function Gamma1256(x) {return (S(x, 17) ^ S(x, 19) ^ R(x, 10))}function core_sha256(m, l) {var K new Array(0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0xFC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x6CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2);var HASH new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);var W new Array(64);var a, b, c, d, e, f, g, h, i, j;var T1, T2;m[l 5] | 0x80 (24 - l % 32);m[((l 64 9) 4) 15] l;for (var i 0; i m.length; i 16) {a HASH[0];b HASH[1];c HASH[2];d HASH[3];e HASH[4];f HASH[5];g HASH[6];h HASH[7];for (var j 0; j 64; j) {if (j 16)W[j] m[j i];elseW[j] safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);T1 safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);T2 safe_add(Sigma0256(a), Maj(a, b, c));h g;g f;f e;e safe_add(d, T1);d c;c b;b a;a safe_add(T1, T2)}HASH[0] safe_add(a, HASH[0]);HASH[1] safe_add(b, HASH[1]);HASH[2] safe_add(c, HASH[2]);HASH[3] safe_add(d, HASH[3]);HASH[4] safe_add(e, HASH[4]);HASH[5] safe_add(f, HASH[5]);HASH[6] safe_add(g, HASH[6]);HASH[7] safe_add(h, HASH[7])}return HASH}function str2binb(str) {var bin Array();var mask (1 chrsz) - 1;for (var i 0; i str.length * chrsz; i chrsz) {bin[i 5] | (str.charCodeAt(i / chrsz) mask) (24 - i % 32)}return bin}function Utf8Encode(string) {string string.replace(/\r\n/g, \n);var utftext ;for (var n 0; n string.length; n) {var c string.charCodeAt(n);if (c 128) {utftext String.fromCharCode(c)} else if ((c 127) (c 2048)) {utftext String.fromCharCode((c 6) | 192);utftext String.fromCharCode((c 63) | 128)} else {utftext String.fromCharCode((c 12) | 224);utftext String.fromCharCode(((c 6) 63) | 128);utftext String.fromCharCode((c 63) | 128)}}return utftext}function binb2hex(binarray) {var hex_tab hexcase ? 0123456789ABCDEF : 0123456789abcdef;var str ;for (var i 0; i binarray.length * 4; i) {str hex_tab.charAt((binarray[i 2] ((3 - i % 4) * 8 4)) 0xF) hex_tab.charAt((binarray[i 2] ((3 - i % 4) * 8)) 0xF)}return str}s Utf8Encode(s);return binb2hex(core_sha256(str2binb(s), s.length * chrsz)) };调用GEN_SHA256把body参数拿出来丢进去最后toString一下 接下来的六、七部分当然也就不需要给出思路了一个版本号一个时间戳大家自行生成即可 最最最后面的AES也是重点话不多说实现算法如下所示 function _aesEncrypt(data) {var i CryptoJS.AES.encrypt(data,CryptoJS.enc.Utf8.parse(_M6Y?dvfN40VMF[X), // 密钥{iv: CryptoJS.enc.Utf8.parse([01, 02, 03, 04, 05, 06, 07, 08].join())});return CryptoJS.enc.Base64.encode(i.ciphertext) }data是什么是ENV构造的环境参数包括版本号、指纹、设备信息的参数不懂没关系我贴一个图给你思路如下所示 最后我们来测试一下校验一下这JS的算法效果如下所示 这里我们以价格查询接口为示例编写Python示例调用加密算法去请求接口如下所示 当前纯算法稳定无任何601当然算法不对就是601也不全是比如上面的价格接口它是有TLS指纹校验的请求的时候用三方模块处理一下即可不然的话也会出现601
http://www.hkea.cn/news/14533412/

相关文章:

  • 环保推广哪个网站好wordpress网站支持中文注册
  • 兰州网站排名哪家公司好衡水网站建设集团
  • 孟村县网站建设母婴网站dede织梦
  • 网站设计建设有限公司鞋子商城网站开发背景
  • 爱网站关键词挖掘wordpress文章图片格式
  • 北京网站优化方式网页设计论文结论
  • 海东电子商务网站建设网站开发字体选择
  • 上海做网站推荐单页设计图片
  • 做网站分辨率多少钱可直接进入网站的代码
  • 营销型网站建设课程南宁网站建站公司
  • 重庆专业网站建设费用广西住房与城乡建设厅网站电话
  • 想接做网站的单子重庆cms建站系统
  • 网站建设维护视频教程如何自己做网站并开发软件
  • 素材库网站网站建设风格
  • 淘宝优惠劵网站建设州网站建设要找嘉艺网络
  • 四川网站建设哪家好室内设计效果图怎么画
  • 中企动力做的网站怎么登陆外贸建站wordpress
  • 陕西交通建设集团公司网站建设茶叶网站目的
  • wordpress 编辑页脚主网站怎么做熊掌号优化
  • 一个人可以备案几个网站唯尚广告联盟平台
  • 个人网站 建设百度wap
  • 松江网站开发公司潍坊在线网站建设
  • 怎样创建微网站ui是什么
  • 免费无限建站梧州网站建设制作
  • 做网站做系统简述四个网络营销推广策略
  • 国外手机主题网站古典网站织梦模板
  • 蜘蛛从网站哪里抓取又拍网站怎么做
  • 有哪些做mg动画的素材网站管理员修改网站的参数会对网站的搜效果产生什么影响?
  • 企业做网站认证有哪些好处白酒 网站模板
  • 济南免费做网站seo公司外包