const jsdom = require("jsdom"); const {JSDOM} = jsdom; const dom = new JSDOM(`

Hello world

`, { url: "https://example.org/", referrer: "https://example.com/", contentType: "text/html", }); window = dom.window; document = window.document; JSEncrypt = require('jsencrypt') CryptoJs = require('crypto-js') function K(value) { var encrypt = new JSEncrypt; var RSAPublicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCS2TZDs5+orLYCL5SsJ54+bPCVs1ZQQwP2RoPkFQF2jcT0HnNNT8ZoQgJTrGwNi5QNTBDoHC4oJesAVYe6DoxXS9Nls8WbGE8ZNgOC5tVv1WVjyBw7k2x72C/qjPoyo/kO7TYl6Qnu4jqW/ImLoup/nsJppUznF0YgbyU/dFFNBQIDAQAB'; encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----' + RSAPublicKey + '-----END PUBLIC KEY-----') return encrypt.encrypt(value) } function mm(e, t) { return e += `_${t}_bosssoft_platform_095285`, t = CryptoJs.SHA1(e).toString(), CryptoJs.MD5(t).toString() } function get_njs(e){ var t = (new Date).getTime(); // ct = { // timeStamp: t, // nsssjss: K(String(e).split("?")[0] + "$$" + t), // sign: mm(t, e) // } return K(String(e).split("?")[0] + "$$" + t) } function decode_str(e) { var n, t, a, c, i, r; n = "", a = e.length, t = 0; while (t < a) switch (c = e.charCodeAt(t++), c >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: n += e.charAt(t - 1); break; case 12: case 13: i = e.charCodeAt(t++), n += String.fromCharCode((31 & c) << 6 | 63 & i); break; case 14: i = e.charCodeAt(t++), r = e.charCodeAt(t++), n += String.fromCharCode((15 & c) << 12 | (63 & i) << 6 | (63 & r) << 0); break } return n } function de_str(e) { var n, t, a, c, i, r, o, u = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1]; r = e.length, i = 0, o = ""; while (i < r) { do { n = u[255 & e.charCodeAt(i++)] } while (i < r && -1 == n); if (-1 == n) break; do { t = u[255 & e.charCodeAt(i++)] } while (i < r && -1 == t); if (-1 == t) break; o += String.fromCharCode(n << 2 | (48 & t) >> 4); do { if (a = 255 & e.charCodeAt(i++), 61 == a) return o; a = u[a] } while (i < r && -1 == a); if (-1 == a) break; o += String.fromCharCode((15 & t) << 4 | (60 & a) >> 2); do { if (c = 255 & e.charCodeAt(i++), 61 == c) return o; c = u[c] } while (i < r && -1 == c); if (-1 == c) break; o += String.fromCharCode((3 & a) << 6 | c) } return o } function get_data(data){ return decode_str(de_str(data)) } var i = 0 , r = 8; function a(e, t) { e[t >> 5] |= 128 << 24 - t % 32, e[15 + (t + 64 >> 9 << 4)] = t; for (var n, i, r, o = Array(80), a = 1732584193, u = -271733879, c = -1732584194, h = 271733878, d = -1009589776, f = 0; f < e.length; f += 16) { for (var p = a, m = u, g = c, v = h, C = d, y = 0; y < 80; y++) { o[y] = y < 16 ? e[f + y] : l(o[y - 3] ^ o[y - 8] ^ o[y - 14] ^ o[y - 16], 1); var A = s(s(l(a, 5), (A = u, i = c, r = h, (n = y) < 20 ? A & i | ~A & r : !(n < 40) && n < 60 ? A & i | A & r | i & r : A ^ i ^ r)), s(s(d, o[y]), (n = y) < 20 ? 1518500249 : n < 40 ? 1859775393 : n < 60 ? -1894007588 : -899497514)); d = h, h = c, c = l(u, 30), u = a, a = A } a = s(a, p), u = s(u, m), c = s(c, g), h = s(h, v), d = s(d, C) } return Array(a, u, c, h, d) } function s(e, t) { var n = (65535 & e) + (65535 & t); return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n } function l(e, t) { return e << t | e >>> 32 - t } function u(e) { for (var t = Array(), n = (1 << r) - 1, i = 0; i < e.length * r; i += r) t[i >> 5] |= (e.charCodeAt(i / r) & n) << 24 - i % 32; return t } function c(e) { for (var t = i ? "0123456789ABCDEF" : "0123456789abcdef", n = "", r = 0; r < 4 * e.length; r++) n += t.charAt(e[r >> 2] >> 8 * (3 - r % 4) + 4 & 15) + t.charAt(e[r >> 2] >> 8 * (3 - r % 4) & 15); return n } function h(e) { return c(a(u(e), e.length * 8)) } function pp(e) { return CryptoJs.MD5(e).toString() } function mme(e, t) { var n = (new Date).getTime() , i = pp(h(`${n}_${String(e).split("?")[0]}_bosssoft_platform_095285`)) , r = {}; return r.time = n, r.url = String(e).split("?")[0], r.sign = i, null != t && "" !== t && (i = p(h("" + t + String(e).split("?")[0] + n)), r.tokensign = i), r }