diff --git a/routes/service/FpService.js b/routes/service/FpService.js index 5621907..877f42c 100644 --- a/routes/service/FpService.js +++ b/routes/service/FpService.js @@ -1,3 +1,4 @@ +const CryptoJS = require('crypto-js'); const {jsdomFromText, browser} = require("sdenv"); const {Script} = require("node:vm"); const fs = require("node:fs"); @@ -45,5 +46,67 @@ class FpService { console.timeEnd('js执行时长') return los } + random_32 (param){ + var n, i,e=null, + a = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"["split"](""), c = []; + if (e = 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_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjA3NGE2NzEzZGE2ZjQ0YTFiMjA3ODRhZGM0MmUxNmM5In0.zgO2rco0oWhTgOX6tVbZVoLI_qysOfJ1fdlcghe8KyI3iUmFV_IuHvZINQWeSmKesyefAyOxWflWsbSzQiiOgw; oauth2_referer=tpass.zhejiang.chinatax.gov.cn; dzfp-ssotoken=4fa8538cee014e3b84f88ead04610dea; SSO_SECURITY_CHECK_TOKEN=bd1e0dc3898d4239af9c3b11dc8b7983; lzkqow39189=9ef06defe6d34ad7aba79ae8bbe419f8; DTSwUOYx7MiWN=dcf74815ad6d7fef22601131e58a180b8a80b714fe9224c72c6b881b3f42d8b3") +fp.reverse_str("","tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjA3NGE2NzEzZGE2ZjQ0YTFiMjA3ODRhZGM0MmUxNmM5In0.zgO2rco0oWhTgOX6tVbZVoLI_qysOfJ1fdlcghe8KyI3iUmFV_IuHvZINQWeSmKesyefAyOxWflWsbSzQiiOgw; oauth2_referer=tpass.zhejiang.chinatax.gov.cn; dzfp-ssotoken=4fa8538cee014e3b84f88ead04610dea; SSO_SECURITY_CHECK_TOKEN=bd1e0dc3898d4239af9c3b11dc8b7983; lzkqow39189=9ef06defe6d34ad7aba79ae8bbe419f8; DTSwUOYx7MiWN=dcf74815ad6d7fef22601131e58a180b8a80b714fe9224c72c6b881b3f42d8b3") +fp.get_url("/szzhzz/qlfpcx/v1/queryFpjcxx") +fp.hex_md5("6dcfffb8e51944a2c234","/szzhzz/qlfpcx/v1/queryFpjcxx") +fp.aes_encrypt('2JYO2qCKaCPSwUaIcazRtIkpNRH68m9s{"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/test/fp/invoice-business.html b/test/fp/invoice-business.html index fbcb2a8..488426f 100644 --- a/test/fp/invoice-business.html +++ b/test/fp/invoice-business.html @@ -1,4 +1,4 @@ -纳ç¨äººç«¯WEBåºç¨
纳ç¨äººç«¯WEBåºç¨