From 98c6962ec755ad37c99bc01fda867e12b8f09641 Mon Sep 17 00:00:00 2001 From: liudongqi Date: Fri, 27 Sep 2024 10:22:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/Fp.js | 9 +- routes/service/FpService.js | 103 ++-------------- routes/service/static/fp/fp-crypt.js | 175 ++++++++++++++++----------- 3 files changed, 120 insertions(+), 167 deletions(-) diff --git a/routes/Fp.js b/routes/Fp.js index fde12c2..c570083 100644 --- a/routes/Fp.js +++ b/routes/Fp.js @@ -14,7 +14,7 @@ router.post('/getLos', async (req, res) => { let html = req.body.html let loginCookieStr = req.body.loginCookie let publicKey = req.body.publicKey; - console.log(`${uuid};接收到 ${param} 请求:${url} loginCookieStr: ${loginCookieStr} publicKey: `, JSON.stringify(publicKey)); + console.log(`${uuid};接收到 ${param} 请求:${url} loginCookieStr: ${loginCookieStr} publicKey: ${JSON.stringify(publicKey)}`); if (url == null || url === "") { return res.status(500).send("url为空") } @@ -25,8 +25,11 @@ router.post('/getLos', async (req, res) => { try { // 执行 let los = await fpService.get_los(url, param, html, loginCookieStr, publicKey); - console.log(los) - res.status(200).send(los); + if (!los || los['hd'] === '') { + console.error(`${uuid}; 生成错误!请检查 html 或 cookie, los:${JSON.stringify(los)}`) + return res.status(500).send('生成错误!请检查 html 或 cookie') + } + return res.status(200).send(los); } catch (e) { console.error(e.stack) return res.status(500).send(e.message) diff --git a/routes/service/FpService.js b/routes/service/FpService.js index ae2eb92..a4cd5b1 100644 --- a/routes/service/FpService.js +++ b/routes/service/FpService.js @@ -18,18 +18,12 @@ class FpService { * @param publicKey * @returns {Promise<*>} */ - async get_los(url, param, html, loginCookieStr,publicKey) { + async get_los(url, param, html, loginCookieStr, publicKey) { let baseUrl = new URL(url).origin; let urlPath = url.replace(baseUrl, ""); let headers = {}; -// if (param != null || param !== "") { -// let fpCrypt = new FpCrypt(loginCookieStr); -// let $e = fpCrypt.$e(param, urlPath); -// param = JSON.stringify({'jmbw': $e["enVal"]}); -// headers['security-mes-key'] = $e["enMesKey"] -// } - console.time('js执行时长') + console.time('los生成时长') const [jsDom, cookieJar] = jsdomFromText({ url: `${baseUrl}/invoice-query/invoice-query`, referrer: baseUrl, @@ -57,103 +51,30 @@ class FpService { window.$dunm.$byno(); } - let fpCrypt = new FpCrypt(loginCookieStr,publicKey); + let fpCrypt = new FpCrypt(loginCookieStr, publicKey); + // 处理 Param let handleParam = fpCrypt.handleParam(param, urlPath); var enParam = "" - if (handleParam["enVal"]){ + if (handleParam["enVal"]) { enParam = JSON.stringify({'Jmbw': handleParam["enVal"]}); + headers['security-mes-key'] = handleParam["enMesKey"] } - // headers['security-mes-key'] = $e["enMesKey"] + // 处理 xhr 后缀 let handleSuffix = fpCrypt.handleSuffix(urlPath); let los = window[window["_d_ts"]](handleSuffix, enParam); - console.log(urlPath) - let cookies = cookieJar.getCookieStringSync(baseUrl); - los["cookies"] = cookies + headers['lzkqow23819'] = los.hd + los["headers"] = headers['security-mes-key'] + los["cookies"] = cookieJar.getCookieStringSync(baseUrl); + console.log('js执行完成,返回结果 ', los) // 关闭 dom.window.close() - console.timeEnd('js执行时长') + console.timeEnd('los生成时长') return los } -// random_32(enParam) { -// var n, i, e, -// a = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""), c = []; -// if (e = a["length"], 32) { -// for (n = 0; n < 32; n++) { -// c[n] = a[0 | Math.random() * e]; -// } -// } else { -// for (c[8] = c[13] = c[18] = c[23] = "-", c[14] = "4", n = 0; (n < 36); n++) { -// c[n] || (i = 0 | 16 * Math.random(), c[n] = a[19 === n ? 8 | (3 & i) : i]); -// } -// } -// console.log(`生成随机 ${e} 位字符串`, c["join"]("")) -// return c["join"]("") -// } -// -// get_cookie(key, loginCookieStr) { -// var key_list = loginCookieStr.split("; ") -// for (var k = 0; key_list["length"] > k; k++) { -// if (key_list[k].includes(key)) { -// return key_list[k].split("=")[1] -// } -// } -// } -// -// reverse_str(t, loginCookieStr) { -// var i = this.get_cookie("dzfp-ssotoken", loginCookieStr), r = this.qe(i), -// c = t.split('').reverse().join("") + i.split('').reverse().join(""), -// u = ""; -// for (var s = 0; s < c["length"]; s += r) { -// var l = c["substring"](s, s + r); -// u += l.split('').reverse().join("") -// } -// var res = u["substring"](0, 20); -// console.log('倒叙处理字符返回20位', res) -// return res; -// } -// -// qe(n) { -// null === n && (n = ""); -// var o = n["match"]("[0-9]+"); -// if ((null === o)) o = 3; else { -// var a = o["index"]; -// o = parseInt(n["substring"](a, (a + 1)), 10) + 3 -// } -// return o -// } -// -// get_url(url) { -// return url + "?" -// } -// -// hex_md5(reverse_str, url) { -// var strlist = reverse_str + "+" + this.get_url(url) -// var res = CryptoJS.MD5(strlist).toString() -// console.log('md5:', res) -// return res -// } -// -// aes_encrypt(value, key) { -// const srcs = CryptoJS.enc.Utf8.parse(value); -// const key1 = CryptoJS.enc.Utf8.parse(key); -// const cipherTxt = CryptoJS.AES.encrypt(srcs, key1, { -// mode: CryptoJS.mode.ECB, //ECB模式 -// padding: CryptoJS.pad.Pkcs7 //padding处理 -// }).toString(); -// console.log('aes:', cipherTxt) -// return cipherTxt -// } } -//fp = new FpService() -//fp.random_32() -//fp.get_cookie("dzfp-ssotoken","tpass_p3d8j63p8b6p4bbab8dca4832a7fj9cc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJjNzUxNmI4NWI0NjRiZjlhMDJlNzg2NWIxZmViMGE3In0.xMmdn82GoF9NH8ldYx5mCrHFZhP13041_34uZ51kF9INM7MB33rARWCqhCZiqNZUKwB1WkTH5jDIZLwh_bRYyw; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkyMDMzMDY5MGU4M2EtMGY0ODdmOGIyMWM4M2I4LTI2MDAxMTUxLTMxNTMzODQtMTkyMDMzMDY5MGYxODIzIn0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%7D; tpass_mcsc7e2ssscb4sfmbsmas35sass2753b=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijk3ZjQ1NjU5MzA4ODRhNmFiOWIxMjNhZDY5MDdkYTU5In0.NABIuYcca0UKpWOwvjiut7f3yn-tIIGZyBBni7S1jFAoaRR_kaH8CTZLxSxfc6-Q6n5hcG1l94prwDFGgzZWYw; tpass_k238ck9eedkb48a9a5d7k5c2c5kkka58=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImZkZTE4NTFkZGJhNDQ0MWE5ZWJlMWFjODU5NTNiNjM0In0.qHK5SMznOicFnrhi-1MnF16y2QypCSNLtbi3KE2pD1kyz4yRpLE8Fm4aHQMJ5hMa5aO1ibB-iQ-npD7QkoP3qA; tpass_te95ftefe59243cbafta4fb82bbtfcte=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImViYTMzNDVhYTU0NjQ0NWZhOTdlYmViY2Q3MWNiNWQ4In0.Rk1-kzwo4fneL4FapgQzhzxC-vBVu2zpLHQVfnylQ88x6Ik5QNt3PuyfmqLdoenoR7y69BgAOM3GvLi_KFcsoA; tpass_q4q6b8aa469v4369ae7483c4vb45cvca=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg3MWNhNzIyMmRmZjQ1YzQ4YmFjYzViMDExYTY1MjU2In0.rUzqjvnFTAwRxRa49yeiPWqHWNF8WRmsKPayVfGRLuMja5huBOmlpHc-kEXBiGh43ei3t-ZbT7EcvGRga0aZkQ; tpass_mb29dc78543X4X769Hd7d8a35Hdd5236=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjgxYTYwZjIxZmMwZTRlMDY5NTFkNDI1YWUwOWM3MjFjIn0.V1-LfcMe6VM9W4q_F15gqOxNbA2jRLRVpCml0WFvKTYAGdFqsi3JEgGBvMCL0SEkAOSVhGIn1A9ILjCAuiJ_hg; tpass_c5djdncfa7nj4n2cajna2j68cndbj2fc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI1NzM2MjUwMDE5MDQyMTNiYzViNmQ0NGI1MGRlMTZlIn0.Es7Q_0jUPcvGddK90anCqeEIBjtl52YZ3669quo27iVjnObAt580ZEHJPjCSLw9vu3HAtPY2SkjYuquc0tItqA; tpass_ue7c9954acea492784ac6g78939gc2e9=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImM4Y2Y1ZGZkYjJkMTQ0NGJiYjM0NGM1ZGJjZDlhY2UwIn0.dfWdZX2tAHcB5Xgb36Y5WQJabicYJYoURhAhWzKu4cSklCYc1lK6-fjbTbiRUNmW3hAQ0lUDUkH3DHVVTuvOjA; tpass_x774e745d5k24ex5a7kkk375x933f654=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjM0NjljNWY5MThkZTQ4M2JiY2QwNDcyMjgwMzgwZWFkIn0.NKypnkLFaewOcawUAg_fZQdbFAbgFU1Nqj3ibv3FumIKIW6AZXiD7c0ASR16aTa4B4XUBjrysQiXrHksxRX-OQ; oauth2_referer=etax.hubei.chinatax.gov.cn; tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVkNTg4ZjBmN2QxNjQ0NDdhZTczYjBlMzM2ZWIzMGYzIn0.Lmt8PQ7SLdivPrcoa6hxEIW2osZBMFc34ate7WKZ31AtSaOYDDMy1lzVmlBmqaIRNIJUhS18N_jJulWz4XAcJA; tpass_sa67ddd29sc94cga9f96s7da2772s6d7=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVlZjcyMTNmYWYwZTRkYmRiNDMyODU5MmY2NDBjM2EyIn0.jSXIt0ul0pp0Qnb7s7VSdJxVmyfY7fPqzQQg4s2ATS1dluuM49H9Q93oveAxy7URB0s4nMTtWwyTq3mqB_5mpA; tpass_b6edq5qqc5cb4c3288q6aq6fab5qc3b4=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjFlYzI1Zjc4ZGQyMDRmNTQ5MTAxZGEyNDM2MjFmOGU1In0.0VH-6AoQlwsdXMCV6u9nAWCDBWw_sknQQbZy_IzhlrxXkanffsVByh63GYra3awUBma2w-c6WfCwQBdcJGukMg; znhd-ssotoken=a8a7bf26beac4fd4929980b20971b228; ZNHD_SECURITY_CHECK_TOKEN=e4dd8ea2c69440169aede2fdce9a3180; lzkqow39189=2bb488d931034436b6248e9f304424ec; DTSwUOYx7MiWN=ab2bb065ae0ed58c8a84593bb5a3028cb6197c4c212230fce7fbf44bb130b09; dzfp-ssotoken=684d411b247b45c3bcc27ab2e6f8fe68; SSO_SECURITY_CHECK_TOKEN=1100ce6e65af4dd7bb5cf78f795e16a5; lzkqow38189=1727141642601; c_time=12; MKls83gqduGS=0fce79cac178fb6e9a66ca06fa3610191e8668277ba8c269ff723d98e73fd12d893bf51bac776eed80b13155ab4b96ea") -//fp.reverse_str("","tpass_p3d8j63p8b6p4bbab8dca4832a7fj9cc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJjNzUxNmI4NWI0NjRiZjlhMDJlNzg2NWIxZmViMGE3In0.xMmdn82GoF9NH8ldYx5mCrHFZhP13041_34uZ51kF9INM7MB33rARWCqhCZiqNZUKwB1WkTH5jDIZLwh_bRYyw; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkyMDMzMDY5MGU4M2EtMGY0ODdmOGIyMWM4M2I4LTI2MDAxMTUxLTMxNTMzODQtMTkyMDMzMDY5MGYxODIzIn0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%7D; tpass_mcsc7e2ssscb4sfmbsmas35sass2753b=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijk3ZjQ1NjU5MzA4ODRhNmFiOWIxMjNhZDY5MDdkYTU5In0.NABIuYcca0UKpWOwvjiut7f3yn-tIIGZyBBni7S1jFAoaRR_kaH8CTZLxSxfc6-Q6n5hcG1l94prwDFGgzZWYw; tpass_k238ck9eedkb48a9a5d7k5c2c5kkka58=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImZkZTE4NTFkZGJhNDQ0MWE5ZWJlMWFjODU5NTNiNjM0In0.qHK5SMznOicFnrhi-1MnF16y2QypCSNLtbi3KE2pD1kyz4yRpLE8Fm4aHQMJ5hMa5aO1ibB-iQ-npD7QkoP3qA; tpass_te95ftefe59243cbafta4fb82bbtfcte=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImViYTMzNDVhYTU0NjQ0NWZhOTdlYmViY2Q3MWNiNWQ4In0.Rk1-kzwo4fneL4FapgQzhzxC-vBVu2zpLHQVfnylQ88x6Ik5QNt3PuyfmqLdoenoR7y69BgAOM3GvLi_KFcsoA; tpass_q4q6b8aa469v4369ae7483c4vb45cvca=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg3MWNhNzIyMmRmZjQ1YzQ4YmFjYzViMDExYTY1MjU2In0.rUzqjvnFTAwRxRa49yeiPWqHWNF8WRmsKPayVfGRLuMja5huBOmlpHc-kEXBiGh43ei3t-ZbT7EcvGRga0aZkQ; tpass_mb29dc78543X4X769Hd7d8a35Hdd5236=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjgxYTYwZjIxZmMwZTRlMDY5NTFkNDI1YWUwOWM3MjFjIn0.V1-LfcMe6VM9W4q_F15gqOxNbA2jRLRVpCml0WFvKTYAGdFqsi3JEgGBvMCL0SEkAOSVhGIn1A9ILjCAuiJ_hg; tpass_c5djdncfa7nj4n2cajna2j68cndbj2fc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI1NzM2MjUwMDE5MDQyMTNiYzViNmQ0NGI1MGRlMTZlIn0.Es7Q_0jUPcvGddK90anCqeEIBjtl52YZ3669quo27iVjnObAt580ZEHJPjCSLw9vu3HAtPY2SkjYuquc0tItqA; tpass_ue7c9954acea492784ac6g78939gc2e9=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImM4Y2Y1ZGZkYjJkMTQ0NGJiYjM0NGM1ZGJjZDlhY2UwIn0.dfWdZX2tAHcB5Xgb36Y5WQJabicYJYoURhAhWzKu4cSklCYc1lK6-fjbTbiRUNmW3hAQ0lUDUkH3DHVVTuvOjA; tpass_x774e745d5k24ex5a7kkk375x933f654=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjM0NjljNWY5MThkZTQ4M2JiY2QwNDcyMjgwMzgwZWFkIn0.NKypnkLFaewOcawUAg_fZQdbFAbgFU1Nqj3ibv3FumIKIW6AZXiD7c0ASR16aTa4B4XUBjrysQiXrHksxRX-OQ; oauth2_referer=etax.hubei.chinatax.gov.cn; tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVkNTg4ZjBmN2QxNjQ0NDdhZTczYjBlMzM2ZWIzMGYzIn0.Lmt8PQ7SLdivPrcoa6hxEIW2osZBMFc34ate7WKZ31AtSaOYDDMy1lzVmlBmqaIRNIJUhS18N_jJulWz4XAcJA; tpass_sa67ddd29sc94cga9f96s7da2772s6d7=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVlZjcyMTNmYWYwZTRkYmRiNDMyODU5MmY2NDBjM2EyIn0.jSXIt0ul0pp0Qnb7s7VSdJxVmyfY7fPqzQQg4s2ATS1dluuM49H9Q93oveAxy7URB0s4nMTtWwyTq3mqB_5mpA; tpass_b6edq5qqc5cb4c3288q6aq6fab5qc3b4=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjFlYzI1Zjc4ZGQyMDRmNTQ5MTAxZGEyNDM2MjFmOGU1In0.0VH-6AoQlwsdXMCV6u9nAWCDBWw_sknQQbZy_IzhlrxXkanffsVByh63GYra3awUBma2w-c6WfCwQBdcJGukMg; znhd-ssotoken=a8a7bf26beac4fd4929980b20971b228; ZNHD_SECURITY_CHECK_TOKEN=e4dd8ea2c69440169aede2fdce9a3180; lzkqow39189=2bb488d931034436b6248e9f304424ec; DTSwUOYx7MiWN=ab2bb065ae0ed58c8a84593bb5a3028cb6197c4c212230fce7fbf44bb130b09; dzfp-ssotoken=684d411b247b45c3bcc27ab2e6f8fe68; SSO_SECURITY_CHECK_TOKEN=1100ce6e65af4dd7bb5cf78f795e16a5; lzkqow38189=1727141642601; c_time=12; MKls83gqduGS=0fce79cac178fb6e9a66ca06fa3610191e8668277ba8c269ff723d98e73fd12d893bf51bac776eed80b13155ab4b96ea") -//fp.get_url("/szzhzz/qlfpcx/v1/queryFpjcxx") -//fp.hex_md5("2e6f8fe68c3bcc27ab11","/szzhzz/qlfpcx/v1/queryFpjcxx") -//fp.aes_encrypt('aebb350059d1768250bc36a5320d180e{"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}',"714acfe38a3df9da5651d01fd223d74d") module.exports = FpService \ No newline at end of file diff --git a/routes/service/static/fp/fp-crypt.js b/routes/service/static/fp/fp-crypt.js index fa90994..7b27569 100644 --- a/routes/service/static/fp/fp-crypt.js +++ b/routes/service/static/fp/fp-crypt.js @@ -18,7 +18,7 @@ class FpCrypt { /** * 处理 url 后缀 * @param t url - * @param e + * @param e xhr * @returns {*} */ handleSuffix(t, e) { @@ -65,16 +65,17 @@ class FpCrypt { s = this.Ke(s); var l, f = (new Date)['valueOf'](), 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)) { + logger('对dzfp-ssotoken进行加密') l = this.Qs(f) } else if ((d >= 51) && d <= 100) { + logger('对tokenKey进行加密') l = this.Qt(f, e) } var h = s['indexOf']("?") === (s["length"] - 1) ? "" : s['indexOf']("?") > -1 ? "&" : "?", p = s += ""['concat'](h, "ruuid=")['concat'](f); if (o) { + logger(`对 ${o} 进行加密`) var v = p['split']("?")['splice'](1); for (var b in v['map'](function (t) { return t["split"]("=")[0] @@ -180,44 +181,64 @@ class FpCrypt { } 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 + var s, l, f; + if ("" === t || null == t) { + return t; } + f = t; + (0 !== f["indexOf"]("/")) && (f += "/"); + s = t["split"]("?"); + l = []; + (s["length"] > 1) && (f = s[0], l = s[1]["split"]("&")); + 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)) + } + (-1 === f.indexOf("?")) && (f += "?"); + logger(`处理url后缀${t}完成返回${f}`) + return f; + } + // 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) { let res = CryptoJS.MD5(t).toString(); - logger('生成32位小写md5', t, res) + logger(t, '生成32位小写md5 --->', res) return res } @@ -246,50 +267,58 @@ class FpCrypt { }; 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 + var o, l, s; + s = this.cookie; + l = JSON["parse"](JSON["stringify"](t)); + l += "="; + o = s["indexOf"](l); + 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; } + return null; }; + // 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) { 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 \ No newline at end of file