jsEncrypter icon indicating copy to clipboard operation
jsEncrypter copied to clipboard

多个JS文件相互关联能用这个加载吗?

Open taylorwin opened this issue 6 years ago • 6 comments

比如 // 加载实现加密算法的js脚本 var wasSuccessful = phantom.injectJs('base64.js');/引入实现加密的js文件/

base64.js 这个JS 依赖另一个 xxx.js 怎么操作呢?

taylorwin avatar Nov 21 '18 08:11 taylorwin

完全可以。比如某前端加密算法依赖1.js,2.js,3.js这三个js文件,那么就可以写

var wasSuccessful = phantom.injectJs('1.js');
var wasSuccessful = phantom.injectJs('2.js');
var wasSuccessful = phantom.injectJs('3.js');

c0ny1 avatar Nov 21 '18 08:11 c0ny1

谢谢大牛这么快的回复。 如果这几个js 里有相同的函数名,如 1.js 有一个叫a() 2.js里也有a() 那我调用 a()时候实际是哪个函数呢?

taylorwin avatar Nov 21 '18 08:11 taylorwin

! function(t) { function e(i) { if (n[i]) return n[i].exports; var o = n[i] = { i: i, l: !1, exports: {} }; return t[i].call(o.exports, o, o.exports, e), o.l = !0, o.exports } .................................... ................................ function r(t) { var e = t.data._ || +new Date, n = t.url + "?", i = { : e }, r = [""], s = ""; if ("POST" === t.type.toUpperCase() && t.data) i.data = (0, a["default"])(t.data), r.push("data"); else { for (var d in t.data)!u(i[d]) || u(t.data[d]) || l(t.data[d]) || "" === t.data[d] || (i[d] = t.data[d], r.push(d)); console.log("this is new yeah!!!!") } r.sort(), r.push("paterner_key"), r.map(function(t, n) { s += t + "=", s += "paterner_key" === t ? e.toString().slice(-6, -1) : decodeURIComponent(i[t]), n !== r.length - 1 && (s += "&") }), i.xa7w6pf = o(c(s)), "POST" === t.type.toUpperCase() && i.data && delete i.data; for (var f in i) n += f + "=" + encodeURIComponent(decodeURIComponent(i[f])) + "&"; return n = n.slice(0, n.length - 1), "POST" === t.type.toUpperCase() ? { url: n, data: t.data } : { url: n } } Object.defineProperty(e, "__esModule", { value: !0 }); var s = n(20), a = i(s);

.................................... ................................ function(t, e) { t.exports = function() { throw new Error("define cannot be used indirect") } } ]); 这个js 是微信上运行的,所以不能chrome 等游览器调试。 我现在遇到一个混淆过的js i.xa7w6pf = o(c(s)),由于不能定位 o() 函数,所以我想直接能不能用你的方法运行?尝试了都失败了。

taylorwin avatar Nov 21 '18 09:11 taylorwin

不知道你的这些js的功能是什么,是不是js加密数据。

c0ny1 avatar Nov 21 '18 11:11 c0ny1

不知道你的这些js的功能是什么,是不是js加密数据。

是对提交的数据做签名的。

taylorwin avatar Nov 22 '18 00:11 taylorwin

你能提供一下一个使用该js做数据签名的小demo么。不然我无法只知道phantomjs能否模拟这个对数据做签名的过程。

c0ny1 avatar Nov 22 '18 15:11 c0ny1