image.png (317.86 KB, 下载次数: 0)
下载附件
2024-11-10 18:05 上传
其次当然是点进来了,就看到了经典的passwordSMEncryption,这不就找到了么,直接再e.passwordSMEncryption打断点,然后再跟进去
image.png (293.38 KB, 下载次数: 0)
下载附件
2024-11-10 18:08 上传
最后你猜怎么着,看到了经典的 n("8060") ,这不就是 webpack么,这就简单了呀,直接着加载器呗,在 n("8060")下断点,跟进去找加载器
image.png (297.5 KB, 下载次数: 0)
下载附件
2024-11-10 18:11 上传
image.png (287.05 KB, 下载次数: 0)
下载附件
2024-11-10 18:14 上传
找到了,直接扣下来,然后再来个外部调用
image.png (113.39 KB, 下载次数: 0)
下载附件
2024-11-10 18:17 上传
然后把要补的方法挨个补齐,最后调用加密算法,结果就直接出来了,key是验证码接口返回的
image.png (173.39 KB, 下载次数: 0)
下载附件
2024-11-10 18:19 上传
补充一哈,这三个值调用的方法是一样的,
image.png (258.86 KB, 下载次数: 0)
下载附件
2024-11-10 18:21 上传
最后直接上你们最爱的成品代码
[color=]谨记,仅用于学习交流使用,切勿用于非法用途,否则一切后果自行承担,与本作者无关
[JavaScript] 纯文本查看 复制代码window=global;
var SME
(function(e) {
function t(t) {
for (var a, i, c = t[0], s = t[1], u = t[2], l = 0, d = []; l 128 && (c = c.substr(c.length - 128));
const l = e.multiply(r)
, u = s.hexToArray(s.leftPad(l.getX().toBigInteger().toRadix(16), 64))
, p = s.hexToArray(s.leftPad(l.getY().toBigInteger().toRadix(16), 64))
, f = s.arrayToHex(a([].concat(u, t, p)));
let h = 1
, m = 0
, g = [];
const v = [].concat(u, p)
, b = () => {
g = a([...v, h >> 24 & 255, h >> 16 & 255, h >> 8 & 255, 255 & h]),
h++,
m = 0
}
;
b();
for (let i = 0, s = t.length; i {
v = a([...b, m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, 255 & m]),
m++,
g = 0
}
;
y();
for (let i = 0, s = l.length; i > 8 & 255);
const h = a(p);
return s.arrayToHex(a(h.concat(s.hexToArray(t))))
}
function v(t) {
const e = c.multiply(new i(t,16))
, n = s.leftPad(e.getX().toBigInteger().toString(16), 64)
, o = s.leftPad(e.getY().toBigInteger().toString(16), 64);
return "04" + n + o
}
function b() {
const t = s.generateKeyPairHex()
, e = l.decodePointHex(t.publicKey);
return t.k = new i(t.privateKey,16),
t.x1 = e.getX().toBigInteger(),
t
}
t.exports = {
generateKeyPairHex: s.generateKeyPairHex,
compressPublicKeyHex: s.compressPublicKeyHex,
comparePublicKeyHex: s.comparePublicKeyHex,
doEncrypt: p,
doDecrypt: f,
doSignature: h,
doVerifySignature: m,
getPublicKeyFromPrivateKey: v,
getPoint: b,
verifyPublicKey: s.verifyPublicKey
}
},
e0c8: function(t, e, n) {
(function() {
var e, n = 0xdeadbeefcafe, i = 15715070 == (16777215 & n);
function o(t, e, n) {
null != t && ("number" == typeof t ? this.fromNumber(t, e, n) : null == e && "string" != typeof t ? this.fromString(t, 256) : this.fromString(t, e))
}
function r() {
return new o(null)
}
function s(t, e, n, i, o, r) {
while (--r >= 0) {
var s = e * this[t++] + n + o;
o = Math.floor(s / 67108864),
n[i++] = 67108863 & s
}
return o
}
function a(t, e, n, i, o, r) {
var s = 32767 & e
, a = e >> 15;
while (--r >= 0) {
var c = 32767 & this[t]
, l = this[t++] >> 15
, u = a * c + l * s;
c = s * c + ((32767 & u) >> 30) + (u >>> 15) + a * l + (o >>> 30),
n[i++] = 1073741823 & c
}
return o
}
function c(t, e, n, i, o, r) {
var s = 16383 & e
, a = e >> 14;
while (--r >= 0) {
var c = 16383 & this[t]
, l = this[t++] >> 14
, u = a * c + l * s;
c = s * c + ((16383 & u) > 28) + (u >> 14) + a * l,
n[i++] = 268435455 & c
}
return o
}
var l = "undefined" !== typeof navigator;
l && i && "Microsoft Internet Explorer" == navigator.appName ? (o.prototype.am = a,
e = 30) : l && i && "Netscape" != navigator.appName ? (o.prototype.am = s,
e = 26) : (o.prototype.am = c,
e = 28),
o.prototype.DB = e,
o.prototype.DM = (1 = 0; --e)
t[e] = this[e];
t.t = this.t,
t.s = this.s
}
function b(t) {
this.t = 1,
this.s = t 0 ? this[0] = t : t = 0) {
var a = 8 == n ? 255 & t : g(t, i);
a this.DB ? (this[this.t - 1] |= (a & (1 > this.DB - s) : this[this.t - 1] |= a = this.DB && (s -= this.DB))
}
8 == n && 0 != (128 & t[0]) && (this.s = -1,
s > 0 && (this[this.t - 1] |= (1 0 && this[this.t - 1] == t)
--this.t
}
function x(t) {
if (this.s 0) {
a > a) > 0 && (o = !0,
r = m(n));
while (s >= 0)
a > (a += this.DB - e)) : (n = this
a 0 && (o = !0),
o && (r += m(n))
}
return o ? r : "0"
}
function w() {
var t = r();
return o.ZERO.subTo(this, t),
t
}
function _() {
return this.s = 0)
if (0 != (e = this[n] - t[n]))
return e;
return 0
}
function k(t) {
var e, n = 1;
return 0 != (e = t >>> 16) && (t = e,
n += 16),
0 != (e = t >> 8) && (t = e,
n += 8),
0 != (e = t >> 4) && (t = e,
n += 4),
0 != (e = t >> 2) && (t = e,
n += 2),
0 != (e = t >> 1) && (t = e,
n += 1),
n
}
function T() {
return this.t = 0; --n)
e[n + t] = this[n];
for (n = t - 1; n >= 0; --n)
e[n] = 0;
e.t = this.t + t,
e.s = this.s
}
function E(t, e) {
for (var n = t; n = 0; --n)
e[n + s + 1] = this[n] >> o | a,
a = (this[n] & r) = 0; --n)
e[n] = 0;
e
e.t = this.t + s + 1,
e.s = this.s,
e.clamp()
}
function N(t, e) {
e.s = this.s;
var n = Math.floor(t / this.DB);
if (n >= this.t)
e.t = 0;
else {
var i = t % this.DB
, o = this.DB - i
, r = (1 > i;
for (var s = n + 1; s > i;
i > 0 && (e[this.t - n - 1] |= (this.s & r) >= this.DB;
if (t.t >= this.DB;
i += this.s
} else {
i += this.s;
while (n >= this.DB;
i -= t.s
}
e.s = i 0 && (e[n++] = i),
e.t = n,
e.clamp()
}
function B(t, e) {
var n = this.abs()
, i = t.abs()
, r = n.t;
e.t = r + i.t;
while (--r >= 0)
e[r] = 0;
for (r = 0; r = 0)
t[n] = 0;
for (n = 0; n = e.DV && (t[n + e.t] -= e.DV,
t[n + e.t + 1] = 1)
}
t.t > 0 && (t[t.t - 1] += e.am(n, e[n], t, 2 * n, 0, 1)),
t.s = 0,
t.clamp()
}
function L(t, e, n) {
var i = t.abs();
if (!(i.t 0 ? (i.lShiftTo(u, a),
s.lShiftTo(u, n)) : (i.copyTo(a),
s.copyTo(n));
var d = a.t
, p = a[d - 1];
if (0 != p) {
var f = p * (1 1 ? a[d - 2] >> this.F2 : 0)
, h = this.FV / f
, m = (1 = 0 && (n[n.t++] = 1,
n.subTo(y, n)),
o.ONE.dlShiftTo(d, y),
y.subTo(a, a);
while (a.t = 0) {
var I = n[--v] == p ? this.DM : Math.floor(n[v] * h + (n[v - 1] + g) * m);
if ((n[v] += a.am(0, I, n, b, 0, d)) 0 && n.rShiftTo(u, n),
c 0 && t.subTo(e, e),
e
}
function j(t) {
this.m = t
}
function P(t) {
return t.s = 0 ? t.mod(this.m) : t
}
function U(t) {
return t
}
function M(t) {
t.divRemTo(this.m, null, t)
}
function q(t, e, n) {
t.multiplyTo(e, n),
this.reduce(n)
}
function z(t, e) {
t.squareTo(e),
this.reduce(e)
}
function H() {
if (this.t 0 ? this.DV - e : -e
}
function V(t) {
this.m = t,
this.mp = t.invDigit(),
this.mpl = 32767 & this.mp,
this.mph = this.mp >> 15,
this.um = (1 0 && this.m.subTo(e, e),
e
}
function K(t) {
var e = r();
return t.copyTo(e),
this.reduce(e),
e
}
function G(t) {
while (t.t > 15) * this.mpl & this.um) = t.DV)
t[n] -= t.DV,
t[++n]++
}
t.clamp(),
t.drShiftTo(this.m.t, t),
t.compareTo(this.m) >= 0 && t.subTo(this.m, t)
}
function W(t, e) {
t.squareTo(e),
this.reduce(e)
}
function X(t, e, n) {
t.multiplyTo(e, n),
this.reduce(n)
}
function Y() {
return 0 == (this.t > 0 ? 1 & this[0] : this.s)
}
function Q(t, e) {
if (t > 4294967295 || t = 0)
if (e.sqrTo(n, i),
(t & 1 0)
e.mulTo(i, s, n);
else {
var c = n;
n = i,
i = c
}
return e.revert(n)
}
function Z(t, e) {
var n;
return n = t > 24
}
function nt() {
return 0 == this.t ? this.s : this[0] > 16
}
function it(t) {
return Math.floor(Math.LN2 * this.DB / Math.log(t))
}
function ot() {
return this.s 36)
return "0";
var e = this.chunkSize(t)
, n = Math.pow(t, e)
, i = y(n)
, o = r()
, s = r()
, a = "";
this.divRemTo(i, o, s);
while (o.signum() > 0)
a = (n + s.intValue()).toString(t).substr(1) + a,
o.divRemTo(i, o, s);
return s.intValue().toString(t) + a
}
function st(t, e) {
this.fromInt(0),
null == e && (e = 10);
for (var n = this.chunkSize(e), i = Math.pow(e, n), r = !1, s = 0, a = 0, c = 0; c = n && (this.dMultiply(i),
this.dAddOffset(a, 0),
s = 0,
a = 0))
}
s > 0 && (this.dMultiply(Math.pow(e, s)),
this.dAddOffset(a, 0)),
r && o.ZERO.subTo(this, this)
}
function at(t, e, n) {
if ("number" == typeof e)
if (t t && this.subTo(o.ONE.shiftLeft(t - 1), this)
}
else {
var i = new Array
, r = 7 & t;
i.length = 1 + (t >> 3),
e.nextBytes(i),
r > 0 ? i[0] &= (1 0) {
i > i) != (this.s & this.DM) >> i && (e[o++] = n | this.s = 0)
i > (i += this.DB - 8)) : (n = this[t] >> (i -= 8) & 255,
i 0 || n != this.s) && (e[o++] = n)
}
return e
}
function lt(t) {
return 0 == this.compareTo(t)
}
function ut(t) {
return this.compareTo(t) 0 ? this : t
}
function pt(t, e, n) {
var i, o, r = Math.min(t.t, this.t);
for (i = 0; i >= 16,
e += 16),
0 == (255 & t) && (t >>= 8,
e += 8),
0 == (15 & t) && (t >>= 4,
e += 4),
0 == (3 & t) && (t >>= 2,
e += 2),
0 == (1 & t) && ++e,
e
}
function St() {
for (var t = 0; t = this.t ? 0 != this.s : 0 != (this[e] & 1 >= this.DB;
if (t.t >= this.DB;
i += this.s
} else {
i += this.s;
while (n >= this.DB;
i += t.s
}
e.s = i 0 ? e[n++] = i : i = this.DV)
this[e] -= this.DV,
++e >= this.t && (this[this.t++] = 0),
++this[e]
}
}
function Ht() {}
function Vt(t) {
return t
}
function $t(t, e, n) {
t.multiplyTo(e, n)
}
function Kt(t, e) {
t.squareTo(e)
}
function Gt(t) {
return this.exp(t, new Ht)
}
function Wt(t, e, n) {
var i, o = Math.min(this.t + t.t, e);
n.s = 0,
n.t = o;
while (o > 0)
n[--o] = 0;
for (i = n.t - this.t; o = 0)
n = 0;
for (i = Math.max(e - this.t, 0); i 2 * this.m.t)
return t.mod(this.m);
if (t.compareTo(this.m) this.m.t + 1 && (t.t = this.m.t + 1,
t.clamp()),
this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3),
this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);
while (t.compareTo(this.r2) = 0)
t.subTo(this.m, t)
}
function te(t, e) {
t.squareTo(e),
this.reduce(e)
}
function ee(t, e, n) {
t.multiplyTo(e, n),
this.reduce(n)
}
function ne(t, e) {
var n, i, o = t.bitLength(), s = y(1);
if (o 1) {
var d = r();
i.sqrTo(a[1], d);
while (c = 0) {
o >= l ? p = t[h] >> o - l & u : (p = (t[h] & (1 0 && (p |= t[h - 1] >> this.DB + o - l)),
c = n;
while (0 == (1 & p))
p >>= 1,
--c;
if ((o -= c) 1)
i.sqrTo(s, g),
i.sqrTo(g, s),
c -= 2;
c > 0 ? i.sqrTo(s, g) : (f = s,
s = g,
g = f),
i.mulTo(g, a
, s)
}
while (h >= 0 && 0 == (t[h] & 1 0 && (e.rShiftTo(r, e),
n.rShiftTo(r, n));
while (e.signum() > 0)
(o = e.getLowestSetBit()) > 0 && e.rShiftTo(o, e),
(o = n.getLowestSetBit()) > 0 && n.rShiftTo(o, n),
e.compareTo(n) >= 0 ? (e.subTo(n, e),
e.rShiftTo(1, e)) : (n.subTo(e, n),
n.rShiftTo(1, n));
return r > 0 && n.lShiftTo(r, n),
n
}
function oe(t) {
if (t 0)
if (0 == e)
n = this[0] % t;
else
for (var i = this.t - 1; i >= 0; --i)
n = (e * n + this) % t;
return n
}
function re(t) {
var e = t.isEven();
if (this.isEven() && e || 0 == t.signum())
return o.ZERO;
var n = t.clone()
, i = this.clone()
, r = y(1)
, s = y(0)
, a = y(0)
, c = y(1);
while (0 != n.signum()) {
while (n.isEven())
n.rShiftTo(1, n),
e ? (r.isEven() && s.isEven() || (r.addTo(this, r),
s.subTo(t, s)),
r.rShiftTo(1, r)) : s.isEven() || s.subTo(t, s),
s.rShiftTo(1, s);
while (i.isEven())
i.rShiftTo(1, i),
e ? (a.isEven() && c.isEven() || (a.addTo(this, a),
c.subTo(t, c)),
a.rShiftTo(1, a)) : c.isEven() || c.subTo(t, c),
c.rShiftTo(1, c);
n.compareTo(i) >= 0 ? (n.subTo(i, n),
e && r.subTo(a, r),
s.subTo(c, s)) : (i.subTo(n, i),
e && a.subTo(r, a),
c.subTo(s, c))
}
return 0 != i.compareTo(o.ONE) ? o.ZERO : c.compareTo(t) >= 0 ? c.subtract(t) : c.signum() > 1,
t > le.length && (t = le.length);
for (var s = r(), a = 0; a > 8 & 255,
ae[ce++] ^= t >> 16 & 255,
ae[ce++] ^= t >> 24 & 255,
ce >= Se && (ce -= Se)
}
function he() {
fe((new Date).getTime())
}
if (o.prototype.chunkSize = it,
o.prototype.toRadix = rt,
o.prototype.fromRadix = st,
o.prototype.fromNumber = at,
o.prototype.bitwiseTo = pt,
o.prototype.changeBit = Et,
o.prototype.addTo = Bt,
o.prototype.dMultiply = qt,
o.prototype.dAddOffset = zt,
o.prototype.multiplyLowerTo = Wt,
o.prototype.multiplyUpperTo = Xt,
o.prototype.modInt = oe,
o.prototype.millerRabin = pe,
o.prototype.clone = J,
o.prototype.intValue = tt,
o.prototype.byteValue = et,
o.prototype.shortValue = nt,
o.prototype.signum = ot,
o.prototype.toByteArray = ct,
o.prototype.equals = lt,
o.prototype.min = ut,
o.prototype.max = dt,
o.prototype.and = ht,
o.prototype.or = gt,
o.prototype.xor = bt,
o.prototype.andNot = It,
o.prototype.not = Ct,
o.prototype.shiftLeft = xt,
o.prototype.shiftRight = wt,
o.prototype.getLowestSetBit = St,
o.prototype.bitCount = Tt,
o.prototype.testBit = Ot,
o.prototype.setBit = At,
o.prototype.clearBit = Nt,
o.prototype.flipBit = Rt,
o.prototype.add = Dt,
o.prototype.subtract = Lt,
o.prototype.multiply = Ft,
o.prototype.divide = Pt,
o.prototype.remainder = Ut,
o.prototype.divideAndRemainder = Mt,
o.prototype.modPow = ne,
o.prototype.modInverse = re,
o.prototype.pow = Gt,
o.prototype.gcd = ie,
o.prototype.isProbablePrime = de,
o.prototype.square = jt,
o.prototype.Barrett = Yt,
null == ae) {
var me;
if (ae = new Array,
ce = 0,
"undefined" !== typeof window && window.crypto)
if (window.crypto.getRandomValues) {
var ge = new Uint8Array(32);
for (window.crypto.getRandomValues(ge),
me = 0; me >> 8,
ae[ce++] = 255 & me;
ce = 0,
he()
}
function be() {
if (null == se) {
for (he(),
se = _e(),
se.init(ae),
ce = 0; ce t.getEncodedHex()).join(""),
this.v
}
}
function c(t, e) {
return +t[e + 2] >> 2] |= (255 & t.charCodeAt(o)) >> 2] >>> 24 - o % 4 * 8 & 255;
i.push((t >>> 4).toString(16)),
i.push((15 & t).toString(16))
}
return i.join("")
}
function m(t, e) {
return t.length >= e ? t : new Array(e - t.length + 1).join("0") + t
}
function g(t) {
return t.map(t => (t = t.toString(16),
1 === t.length ? "0" + t : t)).join("")
}
function v(t) {
const e = [];
let n = 0;
for (let o = 0; o >> 3] |= parseInt(t[n], 10) >> 2] >>> 24 - i % 4 * 8 & 255;
n.push(String.fromCharCode(t))
}
return decodeURIComponent(escape(n.join("")))
} catch (i) {
throw new Error("Malformed UTF-8 data")
}
}
function b(t) {
const e = [];
let n = t.length;
n % 2 !== 0 && (t = m(t, n + 1)),
n = t.length;
for (let i = 0; i 0; o--) {
i = i.twice();
const r = e.testBit(o)
, s = t.testBit(o);
r !== s && (i = i.add(r ? this : n))
}
return i
}
}
class c {
constructor(t, e, n) {
this.q = t,
this.a = this.fromBigInteger(e),
this.b = this.fromBigInteger(n),
this.infinity = new a(this,null,null)
}
equals(t) {
return t === this || this.q.equals(t.q) && this.a.equals(t.a) && this.b.equals(t.b)
}
fromBigInteger(t) {
return new s(this.q,t)
}
decodePointHex(t) {
switch (parseInt(t.substr(0, 2), 16)) {
case 0:
return this.infinity;
case 2:
case 3:
const e = this.fromBigInteger(new i(t.substr(2),16));
let n = this.fromBigInteger(e.multiply(e.square()).add(e.multiply(this.a)).add(this.b).toBigInteger().modPow(this.q.divide(new i("4")).add(i.ONE), this.q));
return n.toBigInteger().mod(o).equals(new i(t.substr(0, 2),16).subtract(o)) || (n = n.negate()),
new a(this,e,n);
case 4:
case 6:
case 7:
const r = (t.length - 2) / 2
, s = t.substr(2, r)
, c = t.substr(r + 2, r);
return new a(this,this.fromBigInteger(new i(s,16)),this.fromBigInteger(new i(c,16)));
default:
return null
}
}
}
t.exports = {
ECPointFp: a,
ECCurveFp: c
}
},
"41d0": function(t, e) {
const n = new Uint32Array(68)
, i = new Uint32Array(64);
function o(t, e) {
const n = 31 & e;
return t >> 32 - n
}
function r(t, e) {
const n = [];
for (let i = t.length - 1; i >= 0; i--)
n = 255 & (t ^ e);
return n
}
function s(t) {
return t ^ o(t, 9) ^ o(t, 17)
}
function a(t) {
return t ^ o(t, 15) ^ o(t, 23)
}
function c(t) {
let e = 8 * t.length
, r = e % 512;
r = r >= 448 ? 512 - r % 448 - 1 : 448 - r - 1;
const c = new Array((r - 7) / 8)
, l = new Array(8);
for (let n = 0, i = c.length; n = 0; n--)
if (e.length > 8) {
const t = e.length - 8;
l[n] = parseInt(e.substr(t), 2),
e = e.substr(0, t)
} else
e.length > 0 && (l[n] = parseInt(e, 2),
e = "");
const u = new Uint8Array([...t, 128, ...c, ...l])
, d = new DataView(u.buffer,0)
, p = u.length / 64
, f = new Uint32Array([1937774191, 1226093241, 388252375, 3666478592, 2842636476, 372324522, 3817729613, 2969243214]);
for (let m = 0; m = 0 && a = 0 && a = 0 && a >> 24, (16711680 & t) >>> 16, (65280 & t) >>> 8, 255 & t)
}
return h
}
const l = 64
, u = new Uint8Array(l)
, d = new Uint8Array(l);
for (let f = 0; f l && (e = c(e));
while (e.length = e ? t : new Array(e - t.length + 1).join("0") + t
}
function s(t) {
return t.map(t => (t = t.toString(16),
1 === t.length ? "0" + t : t)).join("")
}
function a(t) {
const e = [];
let n = t.length;
n % 2 !== 0 && (t = r(t, n + 1)),
n = t.length;
for (let i = 0; i >> 6),
e.push(128 | 63 & i);
else if (i = 57344 && i >> 12),
e.push(128 | i >>> 6 & 63),
e.push(128 | 63 & i);
else {
if (!(i >= 65536 && i >> 18 & 28),
e.push(128 | i >>> 12 & 63),
e.push(128 | i >>> 6 & 63),
e.push(128 | 63 & i)
}
}
return e
}
t.exports = function(t, e) {
if (t = "string" === typeof t ? c(t) : Array.prototype.slice.call(t),
e) {
const n = e.mode || "hmac";
if ("hmac" !== n)
throw new Error("invalid mode");
let i = e.key;
if (!i)
throw new Error("invalid key");
return i = "string" === typeof i ? a(i) : Array.prototype.slice.call(i),
s(o(t, i))
}
return s(i(t))
}
},
"10d11": function(t, e) {
const n = 0
, i = 32
, o = 16
, r = [214, 144, 233, 254, 204, 225, 61, 183, 22, 182, 20, 194, 40, 251, 44, 5, 43, 103, 154, 118, 42, 190, 4, 195, 170, 68, 19, 38, 73, 134, 6, 153, 156, 66, 80, 244, 145, 239, 152, 122, 51, 84, 11, 67, 237, 207, 172, 98, 228, 179, 28, 169, 201, 8, 232, 149, 128, 223, 148, 250, 117, 143, 63, 166, 71, 7, 167, 252, 243, 115, 23, 186, 131, 89, 60, 25, 230, 133, 79, 168, 104, 107, 129, 178, 113, 100, 218, 139, 248, 235, 15, 75, 112, 86, 157, 53, 30, 36, 14, 94, 99, 88, 209, 162, 37, 34, 124, 59, 1, 33, 120, 135, 212, 0, 70, 87, 159, 211, 39, 82, 76, 54, 2, 231, 160, 196, 200, 158, 234, 191, 138, 210, 64, 199, 56, 181, 163, 247, 242, 206, 249, 97, 21, 161, 224, 174, 93, 164, 155, 52, 26, 85, 173, 147, 50, 48, 245, 140, 177, 227, 29, 246, 226, 46, 130, 102, 202, 96, 192, 41, 35, 171, 13, 83, 78, 111, 213, 219, 55, 69, 222, 253, 142, 47, 3, 255, 106, 114, 109, 108, 91, 81, 141, 27, 175, 146, 187, 221, 188, 127, 17, 217, 92, 65, 31, 16, 90, 216, 10, 193, 49, 136, 165, 205, 123, 189, 45, 116, 208, 18, 184, 229, 180, 176, 137, 105, 151, 74, 12, 150, 119, 126, 101, 185, 241, 9, 197, 110, 198, 132, 24, 240, 125, 236, 58, 220, 77, 32, 121, 238, 95, 62, 215, 203, 57, 72]
, s = [462357, 472066609, 943670861, 1415275113, 1886879365, 2358483617, 2830087869, 3301692121, 3773296373, 4228057617, 404694573, 876298825, 1347903077, 1819507329, 2291111581, 2762715833, 3234320085, 3705924337, 4177462797, 337322537, 808926789, 1280531041, 1752135293, 2223739545, 2695343797, 3166948049, 3638552301, 4110090761, 269950501, 741554753, 1213159005, 1684763257];
function a(t) {
const e = [];
for (let n = 0, i = t.length; n (t = t.toString(16),
1 === t.length ? "0" + t : t)).join("")
}
function l(t) {
const e = [];
for (let n = 0, i = t.length; n >> 6),
e.push(128 | 63 & i);
else if (i = 57344 && i >> 12),
e.push(128 | i >>> 6 & 63),
e.push(128 | 63 & i);
else {
if (!(i >= 65536 && i >> 18 & 28),
e.push(128 | i >>> 12 & 63),
e.push(128 | i >>> 6 & 63),
e.push(128 | 63 & i)
}
}
return e
}
function u(t) {
const e = [];
for (let n = 0, i = t.length; n = 240 && t[n] = 224 && t[n] = 192 && t[n] >> 32 - n
}
function p(t) {
return (255 & r[t >>> 24 & 255]) >> 16 & 255]) >> 8 & 255]) >> 24 & 255,
e[r + 1] = i[3 - r / 4] >>> 16 & 255,
e[r + 2] = i[3 - r / 4] >>> 8 & 255,
e[r + 3] = 255 & i[3 - r / 4]
}
function g(t, e, i) {
const o = new Array(4)
, r = new Array(4);
for (let n = 0; n = o) {
const e = t.slice(I, I + 16)
, i = new Array(16);
if ("cbc" === d)
for (let t = 0; t