python里面加载js代码
第一组-请求加密
有一段js代码
const CryptoJS = require("crypto-js") function l(t, e) { return t.toString().toUpperCase() > e.toString().toUpperCase() ? 1 : t.toString().toUpperCase() == e.toString().toUpperCase() ? 0 : -1 } function u(t) { for (var e = Object.keys(t).sort(l), n = "", a = 0; a < e.length; a++) if (void 0 !== t[e[a]]) if (t[e[a]] && t[e[a]]instanceof Object || t[e[a]]instanceof Array) { var i = JSON.stringify(t[e[a]]); n += e[a] + i } else n += e[a] + t[e[a]]; return n } function d(t) { for (var e in t) "" !== t[e] && void 0 !== t[e] || delete t[e]; var n = "B3978D054A72A7002063637CCDF6B2E5" + u(t); return CryptoJS.MD5(n).toString().toLocaleLowerCase() }
python 调用
import execjs # 读文件 js_code = open("1.js").read() # execjs.compile运行代码 js_compile = execjs.compile(js_code) # 参数 json_data = { 'pageSize': 8, 'type': '12', 'ts': 1721372555517, } sign = js_compile.call("d", json_data) # 调用d函数,传参数 print(sign)
第二组-响应解密
有一段js代码
const CryptoJS = require("crypto-js") // 响应解密 function b(t) { var e = CryptoJS.enc.Utf8.parse("EB444973714E4A40876CE66BE45D5930") , n = CryptoJS.enc.Utf8.parse("B5A8904209931867") , a = CryptoJS.AES.decrypt(t, e, { iv: n, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); return a.toString(CryptoJS.enc.Utf8) }
python
import execjs js_code = open("2.js").read() js_compile = execjs.compile(js_code) t = "MZphJmFlelDpw2aSCfdFb5kX4V2ly++6RL2qxtG4A9KQJfU4oM3z1Lomr9xzGA8QYZJXSx3a2tTElK/blrPo5ZYEea/40BthzQog2dEijtH2MybKVu73bkcBKJZUd2n4OXyqjRkduqSxsMl/8urQVv0227G7eCQ2DLxx+04UjBN//j0qhXn0GP5ualcNryBYUijyYW22/adHzcSyzXby9zxa+FZMaOv1DNlZVgCPgh2TN+cT6xgW0UCpKi6JbvPPzUfKhsWPJ5Atc7Za9DZLzFF93fqPjHCCRaztFxdvjL/l/6w8I0iaWFr/OaQqOVJxOGNffc8GxV7ffZVWqz7dmpwZ+mdNVridirFJQd5mxZCS/r83Ts78LOCXHY+bncR0W3qOSMSBWa/VdDRwZfH/uJ1FmvOv8q6iRp3sqIoGkeVFF5YO39HOJCQApOV8MfDvICEbb3rMkZhZUvi0RVxWBqTO/sq5qrKfgcJSfT4PmX4Wc6IRGFO/L5uiH8exCFIWDrwIpEiloIVVPCglgu1sFJohmDJ+VGv2inoZx9vchA4kyZC5GDdHMjDKIJWWQJtnDYFR/Q+3IJuBNZFFDIJBigztpiTzXNMQaq0OwJecl8ITPY3TXbQbcNMoHC18TdybxME9TodvaHXRaFiRtI9P9uERpQU0DAK5k882Tlv9+3LU8tohACIL+SZB8Nf4onMkpUQpAPF0rIKDY+B9KcUvRW7TXq9lJMRR7P+pvP6FsxzMbgg4rStraAhK5hFPN8t3G22S9zbweZfbJwvaqptopwrJtl0Jk+BpzoWT77W7hhtz59SOyC41OCKwfg9Cgarl64H7p0VkD8Za0SQMiHmkniHFEX7pBhNlLOsDXvWlyNRuiuRM1uX2IvKc2H2n/GaNacxSXCwBPBPmNj8DWRUNNWL7OoQVSkq5LGwGpXDaIRRvuX4GFqPfe9IKcO8FwSxXHrRSN/PbdKnaG3rbQyLneNaT3NIXR1NVYcMYU02dIg5X8sJb9qmSGJyOXX4WmF/ay2K6LYYz3eOOyk+I1bHtWaAQ/t0YEVuV222u3UdcFeeBJenZQHgGWntntkcCZqcVsDfR89mAN2G+HJ2dyjPCdWwlvqNXVdL0M0eBXRhEUBeEmrIzU+ptBVsKpDViWnLUcmc/k3arrOyw3ViL5CGGAyeWiBoR61m0QDUPPYfByNY0fa2MeDIlOANXQHF/om5AgdWjhKKFnNVYE22KVvhfVlqf0aWufKAwcNFhkq/B5F9kCn5C9Odl98lj6wt+WRPLIumifqPJH8eGkHza6SbWw4US3irc8GwAcoq6dgfdlT+7YaA1W7Nqp8sotO78+G3Pwoi91BHfsOJC0D8Yv+KlAy26H5LxLfqw82C7YeHBv2eFaDtgV/JEdOIssWoiz0h3MdvlTNlm2tdoo0eMVA5w36cSis5lwGSNG9Bty3vKx2y9LXDN4yShMg95BKv/fg2hCat+LlwarnTVF1GNJWqeyMizwyMAvqOiLbTPKJ9W2LgK83DrCRQpA8u8w9UJOP3HkGjU63zP97c0Rb3s2+fu0JTISy6OLeOrM6CLCeGf8tTTg7ovLSzfSRAJLro1UXSoK8WAlkl3BzC1vBw/PY8dg6B4ZT6GROvIuKzNy9GsEa3K+XW59R19ZpMJUcsw9k6OB08FG0cm6C4oYScEM5uOCGjchTajhdUQ4PRZaIVFhgMZ1tY4OHeLxwURpD6HQmneG6j/kIxLZOM48AhKXkdbow==" text = js_compile.call("b", t) print(text)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现