js逆向登录破解

2023-11-08

如有侵犯您的利益,+qq:2867395035立马进行修改。

1.x奇艺逆向登录破解

window=this;window._M_ = window._M_ || {}
_M_[211] = function(a, b) {
    return function() {
        if (!b[a].executed) {
            var c = function(a, b) {
                function c(a) {
                    var b = f,
                        c = b.biDivideByRadixPower(a, this.k - 1),
                        d = b.biMultiply(c, this.mu),
                        e = b.biDivideByRadixPower(d, this.k + 1),
                        g = b.biModuloByRadixPower(a, this.k + 1),
                        h = b.biMultiply(e, this.modulus),
                        i = b.biModuloByRadixPower(h, this.k + 1),
                        j = b.biSubtract(g, i);
                    j.isNeg && (j = b.biAdd(j, this.bkplus1));
                    for (var k = b.biCompare(j, this.modulus) >= 0; k;)
                    j = b.biSubtract(j, this.modulus),
                    k = b.biCompare(j, this.modulus) >= 0;
                    return j
                }

                function d(a, b) {
                    var c = f.biMultiply(a, b);
                    return this.modulo(c)
                }

                function e(a, b) {
                    var c = new t;
                    c.digits[0] = 1;
                    for (var d = a, e = b;;) {
                        if (0 != (1 & e.digits[0]) && (c = this.multiplyMod(c, d)),
                        e = f.biShiftRight(e, 1),
                        0 == e.digits[0] && 0 == f.biHighIndex(e)) break;
                        d = this.multiplyMod(d, d)
                    }
                    return c
                }
                var f, g = {};
                "undefined" == typeof g.RSAUtils && (f = g.RSAUtils = {});
                var h, k, l, m, n = 16,
                    o = n,
                    p = 65536,
                    q = p >>> 1,
                    r = p * p,
                    s = p - 1,
                    t = g.BigInt = function(a) {
                        this.digits = "boolean" == typeof a && a === !0 ? null : k.slice(0),
                        this.isNeg = !1
                    };
                f.setMaxDigits = function(a) {
                    h = a,
                    k = new Array(h);
                    for (var b = 0; b < k.length; b++)
                    k[b] = 0;
                    l = new t,
                    m = new t,
                    m.digits[0] = 1
                },
                f.setMaxDigits(20);
                var u = 15;
                f.biFromNumber = function(a) {
                    var b = new t;
                    b.isNeg = 0 > a,
                    a = Math.abs(a);
                    for (var c = 0; a > 0;)
                    b.digits[c++] = a & s,
                    a = Math.floor(a / p);
                    return b
                };
                var v = f.biFromNumber(1e15);
                f.biFromDecimal = function(a) {
                    for (var b, c = "-" == a.charAt(0), d = c ? 1 : 0; d < a.length && "0" == a.charAt(d);)++d;
                    if (d == a.length) b = new t;
                    else {
                        var e = a.length - d,
                            g = e % u;
                        for (0 == g && (g = u),
                        b = f.biFromNumber(Number(a.substr(d, g))),
                        d += g; d < a.length;)
                        b = f.biAdd(f.biMultiply(b, v), f.biFromNumber(Number(a.substr(d, u)))),
                        d += u;
                        b.isNeg = c
                    }
                    return b
                },
                f.biCopy = function(a) {
                    var b = new t(!0);
                    return b.digits = a.digits.slice(0),
                    b.isNeg = a.isNeg,
                    b
                },
                f.reverseStr = function(a) {
                    for (var b = "", c = a.length - 1; c > -1; --c)
                    b += a.charAt(c);
                    return b
                };
                var w = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
                f.biToString = function(a, b) {
                    var c = new t;
                    c.digits[0] = b;
                    for (var d = f.biDivideModulo(a, c), e = w[d[1].digits[0]]; 1 == f.biCompare(d[0], l);)
                    d = f.biDivideModulo(d[0], c),
                    digit = d[1].digits[0],
                    e += w[d[1].digits[0]];
                    return (a.isNeg ? "-" : "") + f.reverseStr(e)
                },
                f.biToDecimal = function(a) {
                    var b = new t;
                    b.digits[0] = 10;
                    for (var c = f.biDivideModulo(a, b), d = String(c[1].digits[0]); 1 == f.biCompare(c[0], l);)
                    c = f.biDivideModulo(c[0], b),
                    d += String(c[1].digits[0]);
                    return (a.isNeg ? "-" : "") + f.reverseStr(d)
                };
                var x = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
                f.digitToHex = function(a) {
                    var b = 15,
                        c = "";
                    for (i = 0; 4 > i; ++i)
                    c += x[a & b],
                    a >>>= 4;
                    return f.reverseStr(c)
                },
                f.biToHex = function(a) {
                    var b = "";
                    f.biHighIndex(a);
                    for (var c = f.biHighIndex(a); c > -1; --c)
                    b += f.digitToHex(a.digits[c]);
                    return b
                },
                f.charToHex = function(a) {
                    var b, c = 48,
                        d = c + 9,
                        e = 97,
                        f = e + 25,
                        g = 65,
                        h = 90;
                    return b = a >= c && d >= a ? a - c : a >= g && h >= a ? 10 + a - g : a >= e && f >= a ? 10 + a - e : 0
                },
                f.hexToDigit = function(a) {
                    for (var b = 0, c = Math.min(a.length, 4), d = 0; c > d; ++d)
                    b <<= 4,
                    b |= f.charToHex(a.charCodeAt(d));
                    return b
                },
                f.biFromHex = function(a) {
                    for (var b = new t, c = a.length, d = c, e = 0; d > 0; d -= 4, ++e)
                    b.digits[e] = f.hexToDigit(a.substr(Math.max(d - 4, 0), Math.min(d, 4)));
                    return b
                },
                f.biFromString = function(a, b) {
                    var c = "-" == a.charAt(0),
                        d = c ? 1 : 0,
                        e = new t,
                        g = new t;
                    g.digits[0] = 1;
                    for (var h = a.length - 1; h >= d; h--) {
                        var i = a.charCodeAt(h),
                            j = f.charToHex(i),
                            k = f.biMultiplyDigit(g, j);
                        e = f.biAdd(e, k),
                        g = f.biMultiplyDigit(g, b)
                    }
                    return e.isNeg = c,
                    e
                },
                f.biDump = function(a) {
                    return (a.isNeg ? "-" : "") + a.digits.join(" ")
                },
                f.biAdd = function(a, b) {
                    var c;
                    if (a.isNeg != b.isNeg) b.isNeg = !b.isNeg,
                    c = f.biSubtract(a, b),
                    b.isNeg = !b.isNeg;
                    else {
                        c = new t;
                        for (var d, e = 0, g = 0; g < a.digits.length; ++g)
                        d = a.digits[g] + b.digits[g] + e,
                        c.digits[g] = d % p,
                        e = Number(d >= p);
                        c.isNeg = a.isNeg
                    }
                    return c
                },
                f.biSubtract = function(a, b) {
                    var c;
                    if (a.isNeg != b.isNeg) b.isNeg = !b.isNeg,
                    c = f.biAdd(a, b),
                    b.isNeg = !b.isNeg;
                    else {
                        c = new t;
                        var d, e;
                        e = 0;
                        for (var g = 0; g < a.digits.length; ++g)
                        d = a.digits[g] - b.digits[g] + e,
                        c.digits[g] = d % p,
                        c.digits[g] < 0 && (c.digits[g] += p),
                        e = 0 - Number(0 > d);
                        if (-1 == e) {
                            e = 0;
                            for (var g = 0; g < a.digits.length; ++g)
                            d = 0 - c.digits[g] + e,
                            c.digits[g] = d % p,
                            c.digits[g] < 0 && (c.digits[g] += p),
                            e = 0 - Number(0 > d);
                            c.isNeg = !a.isNeg
                        } else c.isNeg = a.isNeg
                    }
                    return c
                },
                f.biHighIndex = function(a) {
                    for (var b = a.digits.length - 1; b > 0 && 0 == a.digits[b];)--b;
                    return b
                },
                f.biNumBits = function(a) {
                    var b, c = f.biHighIndex(a),
                        d = a.digits[c],
                        e = (c + 1) * o;
                    for (b = e; b > e - o && 0 == (32768 & d); --b)
                    d <<= 1;
                    return b
                },
                f.biMultiply = function(a, b) {
                    for (var c, d, e, g = new t, h = f.biHighIndex(a), i = f.biHighIndex(b), k = 0; i >= k; ++k) {
                        for (c = 0,
                        e = k,
                        j = 0; h >= j; ++j, ++e)
                        d = g.digits[e] + a.digits[j] * b.digits[k] + c,
                        g.digits[e] = d & s,
                        c = d >>> n;
                        g.digits[k + h + 1] = c
                    }
                    return g.isNeg = a.isNeg != b.isNeg,
                    g
                },
                f.biMultiplyDigit = function(a, b) {
                    var c, d, e;
                    result = new t,
                    c = f.biHighIndex(a),
                    d = 0;
                    for (var g = 0; c >= g; ++g)
                    e = result.digits[g] + a.digits[g] * b + d,
                    result.digits[g] = e & s,
                    d = e >>> n;
                    return result.digits[1 + c] = d,
                    result
                },
                f.arrayCopy = function(a, b, c, d, e) {
                    for (var f = Math.min(b + e, a.length), g = b, h = d; f > g; ++g, ++h)
                    c[h] = a[g]
                };
                var y = [0, 32768, 49152, 57344, 61440, 63488, 64512, 65024, 65280, 65408, 65472, 65504, 65520, 65528, 65532, 65534, 65535];
                f.biShiftLeft = function(a, b) {
                    var c = Math.floor(b / o),
                        d = new t;
                    f.arrayCopy(a.digits, 0, d.digits, c, d.digits.length - c);
                    for (var e = b % o, g = o - e, h = d.digits.length - 1, i = h - 1; h > 0; --h, --i)
                    d.digits[h] = d.digits[h] << e & s | (d.digits[i] & y[e]) >>> g;
                    return d.digits[0] = d.digits[h] << e & s,
                    d.isNeg = a.isNeg,
                    d
                };
                var z = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535];
                f.biShiftRight = function(a, b) {
                    var c = Math.floor(b / o),
                        d = new t;
                    f.arrayCopy(a.digits, c, d.digits, 0, a.digits.length - c);
                    for (var e = b % o, g = o - e, h = 0, i = h + 1; h < d.digits.length - 1; ++h, ++i)
                    d.digits[h] = d.digits[h] >>> e | (d.digits[i] & z[e]) << g;
                    return d.digits[d.digits.length - 1] >>>= e,
                    d.isNeg = a.isNeg,
                    d
                },
                f.biMultiplyByRadixPower = function(a, b) {
                    var c = new t;
                    return f.arrayCopy(a.digits, 0, c.digits, b, c.digits.length - b),
                    c
                },
                f.biDivideByRadixPower = function(a, b) {
                    var c = new t;
                    return f.arrayCopy(a.digits, b, c.digits, 0, c.digits.length - b),
                    c
                },
                f.biModuloByRadixPower = function(a, b) {
                    var c = new t;
                    return f.arrayCopy(a.digits, 0, c.digits, 0, b),
                    c
                },
                f.biCompare = function(a, b) {
                    if (a.isNeg != b.isNeg) return 1 - 2 * Number(a.isNeg);
                    for (var c = a.digits.length - 1; c >= 0; --c)
                    if (a.digits[c] != b.digits[c]) return a.isNeg ? 1 - 2 * Number(a.digits[c] > b.digits[c]) : 1 - 2 * Number(a.digits[c] < b.digits[c]);
                    return 0
                },
                f.biDivideModulo = function(a, b) {
                    var c, d, e = f.biNumBits(a),
                        g = f.biNumBits(b),
                        h = b.isNeg;
                    if (g > e) return a.isNeg ? (c = f.biCopy(m),
                    c.isNeg = !b.isNeg,
                    a.isNeg = !1,
                    b.isNeg = !1,
                    d = biSubtract(b, a),
                    a.isNeg = !0,
                    b.isNeg = h) : (c = new t,
                    d = f.biCopy(a)), [c, d];
                    c = new t,
                    d = a;
                    for (var i = Math.ceil(g / o) - 1, j = 0; b.digits[i] < q;)
                    b = f.biShiftLeft(b, 1), ++j, ++g,
                    i = Math.ceil(g / o) - 1;
                    d = f.biShiftLeft(d, j),
                    e += j;
                    for (var k = Math.ceil(e / o) - 1, l = f.biMultiplyByRadixPower(b, k - i); - 1 != f.biCompare(d, l);)++c.digits[k - i],
                    d = f.biSubtract(d, l);
                    for (var n = k; n > i; --n) {
                        var u = n >= d.digits.length ? 0 : d.digits[n],
                            v = n - 1 >= d.digits.length ? 0 : d.digits[n - 1],
                            w = n - 2 >= d.digits.length ? 0 : d.digits[n - 2],
                            x = i >= b.digits.length ? 0 : b.digits[i],
                            y = i - 1 >= b.digits.length ? 0 : b.digits[i - 1];
                        c.digits[n - i - 1] = u == x ? s : Math.floor((u * p + v) / x);
                        for (var z = c.digits[n - i - 1] * (x * p + y), A = u * r + (v * p + w); z > A;)--c.digits[n - i - 1],
                        z = c.digits[n - i - 1] * (x * p | y),
                        A = u * p * p + (v * p + w);
                        l = f.biMultiplyByRadixPower(b, n - i - 1),
                        d = f.biSubtract(d, f.biMultiplyDigit(l, c.digits[n - i - 1])),
                        d.isNeg && (d = f.biAdd(d, l), --c.digits[n - i - 1])
                    }
                    return d = f.biShiftRight(d, j),
                    c.isNeg = a.isNeg != h,
                    a.isNeg && (c = h ? f.biAdd(c, m) : f.biSubtract(c, m),
                    b = f.biShiftRight(b, j),
                    d = f.biSubtract(b, d)),
                    0 == d.digits[0] && 0 == f.biHighIndex(d) && (d.isNeg = !1), [c, d]
                },
                f.biDivide = function(a, b) {
                    return f.biDivideModulo(a, b)[0]
                },
                f.biModulo = function(a, b) {
                    return f.biDivideModulo(a, b)[1]
                },
                f.biMultiplyMod = function(a, b, c) {
                    return f.biModulo(f.biMultiply(a, b), c)
                },
                f.biPow = function(a, b) {
                    for (var c = m, d = a;;) {
                        if (0 != (1 & b) && (c = f.biMultiply(c, d)),
                        b >>= 1,
                        0 == b) break;
                        d = f.biMultiply(d, d)
                    }
                    return c
                },
                f.biPowMod = function(a, b, c) {
                    for (var d = m, e = a, g = b;;) {
                        if (0 != (1 & g.digits[0]) && (d = f.biMultiplyMod(d, e, c)),
                        g = f.biShiftRight(g, 1),
                        0 == g.digits[0] && 0 == f.biHighIndex(g)) break;
                        e = f.biMultiplyMod(e, e, c)
                    }
                    return d
                },
                g.BarrettMu = function(a) {
                    this.modulus = f.biCopy(a),
                    this.k = f.biHighIndex(this.modulus) + 1;
                    var b = new t;
                    b.digits[2 * this.k] = 1,
                    this.mu = f.biDivide(b, this.modulus),
                    this.bkplus1 = new t,
                    this.bkplus1.digits[this.k + 1] = 1,
                    this.modulo = c,
                    this.multiplyMod = d,
                    this.powMod = e
                };
                var A = function(a, b, c) {
                    var d = f;
                    this.e = d.biFromHex(a),
                    this.d = d.biFromHex(b),
                    this.m = d.biFromHex(c),
                    this.chunkSize = 2 * d.biHighIndex(this.m),
                    this.radix = 16,
                    this.barrett = new g.BarrettMu(this.m)
                };
                f.getKeyPair = function(a, b, c) {
                    return new A(a, b, c)
                },
                    "undefined" == typeof g.twoDigit && (g.twoDigit = function(a) {
                    return (10 > a ? "0" : "") + String(a)
                }),
                f.encryptedString = function(a, b) {
                    for (var c = [], d = b.length, e = 0; d > e;)
                    c[e] = b.charCodeAt(e),
                    e++;
                    for (; 0 != c.length % a.chunkSize;)
                    c[e++] = 0;
                    var g, h, i, j = c.length,
                        k = "";
                    for (e = 0; j > e; e += a.chunkSize) {
                        for (i = new t,
                        g = 0,
                        h = e; h < e + a.chunkSize; ++g)
                        i.digits[g] = c[h++],
                        i.digits[g] += c[h++] << 8;
                        var l = a.barrett.powMod(i, a.e),
                            m = 16 == a.radix ? f.biToHex(l) : f.biToString(l, a.radix);
                        k += m + " "
                    }
                    return k.substring(0, k.length - 1)
                },
                f.decryptedString = function(a, b) {
                    var c, d, e, g = b.split(" "),
                        h = "";
                    for (c = 0; c < g.length; ++c) {
                        var i;
                        for (i = 16 == a.radix ? f.biFromHex(g[c]) : f.biFromString(g[c], a.radix),
                        e = a.barrett.powMod(i, a.d),
                        d = 0; d <= f.biHighIndex(e); ++d)
                        h += String.fromCharCode(255 & e.digits[d], e.digits[d] >> 8)
                    }
                    return 0 == h.charCodeAt(h.length - 1) && (h = h.substring(0, h.length - 1)),
                    h
                },
                f.setMaxDigits(130),
                b[a] = g
            }(a, b);
            void 0 == c && (c = b[a]),
            b[a] = function() {
                return c
            },
            b[a].executed = !0
        }
        return b[a]()
    }
}(211, (_M_[211] = {}) && _M_),
rsaFun = function(e) {
var Q = new _M_[211];
    var t = "ab86b6371b5318aaa1d3c9e612a9f1264f372323c8c0f19875b5fc3b3fd3afcc1e5bec527aa94bfa85bffc157e4245aebda05389a5357b75115ac94f074aefcd",
        a = "10001",
        n = Q.RSAUtils.getKeyPair(a, "", t),
        i = Q.RSAUtils.encryptedString(n, encodeURIComponent(e)).replace(/\s/g, "-");
    return i
}

2.豆瓣没有对密码进行加密,可以直接抓包找接口,暂时没有验证码...

import requests
requests.packages.urllib3.disable_warnings()
url = "https://accounts.douban.com/j/mobile/login/basic"
name = input('请输入你的账号')
pwd = input('请输入你的密码')
payload = 'ck=--Nn&name={0}&password={1}&remember=false'.format(name,pwd)
headers = {
  'Connection': 'keep-alive',
  'Accept': 'application/json',
  'X-Requested-With': 'XMLHttpRequest',
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Origin': 'https://accounts.douban.com',
  'Sec-Fetch-Site': 'same-origin',
  'Sec-Fetch-Mode': 'cors',
  'Sec-Fetch-Dest': 'empty',
  'Referer': 'https://accounts.douban.com/passport/login?redir=https://accounts.douban.com/',
  'Accept-Language': 'zh-CN,zh;q=0.9',
}

response = requests.request("POST", url, headers=headers, data = payload,verify=False)

print(response.text)

3.咪咕视频登录js

getpwd_js = """
window = this;
navigator = {};
function d(a, b, c) {
    null != a && ("number" == typeof a ? this.fromNumber(a, b, c) : null == b && "string" != typeof a ? this.fromString(a, 256) : this.fromString(a, b))
}

function e() {
    return new d(null)
}

function f(a, b, c, d, e, f) {
    for (; --f >= 0;) {
        var g = b * this[a++] + c[d] + e;
        e = Math.floor(g / 67108864), c[d++] = 67108863 & g
    }
    return e
}

function g(a, b, c, d, e, f) {
    for (var g = 32767 & b, h = b >> 15; --f >= 0;) {
        var i = 32767 & this[a],
            j = this[a++] >> 15,
            k = h * i + j * g;
        i = g * i + ((32767 & k) << 15) + c[d] + (1073741823 & e), e = (i >>> 30) + (k >>> 15) + h * j + (e >>> 30), c[d++] = 1073741823 & i
    }
    return e
}

function h(a, b, c, d, e, f) {
    for (var g = 16383 & b, h = b >> 14; --f >= 0;) {
        var i = 16383 & this[a],
            j = this[a++] >> 14,
            k = h * i + j * g;
        i = g * i + ((16383 & k) << 14) + c[d] + e, e = (i >> 28) + (k >> 14) + h * j, c[d++] = 268435455 & i
    }
    return e
}

function i(a) {
    return nb.charAt(a)
}

function j(a, b) {
    var c = ob[a.charCodeAt(b)];
    return null == c ? -1 : c
}

function k(a) {
    for (var b = this.t - 1; b >= 0; --b)
    a[b] = this[b];
    a.t = this.t, a.s = this.s
}

function l(a) {
    this.t = 1, this.s = 0 > a ? -1 : 0, a > 0 ? this[0] = a : -1 > a ? this[0] = a + this.DV : this.t = 0
}

function m(a) {
    var b = e();
    return b.fromInt(a), b
}

function n(a, b) {
    var c;
    if (16 == b) c = 4;
    else if (8 == b) c = 3;
    else if (256 == b) c = 8;
    else if (2 == b) c = 1;
    else if (32 == b) c = 5;
    else {
        if (4 != b) return void this.fromRadix(a, b);
        c = 2
    }
    this.t = 0, this.s = 0;
    for (var e = a.length, f = !1, g = 0; --e >= 0;) {
        var h = 8 == c ? 255 & a[e] : j(a, e);
        0 > h ? "-" == a.charAt(e) && (f = !0) : (f = !1, 0 == g ? this[this.t++] = h : g + c > this.DB ? (this[this.t - 1] |= (h & (1 << this.DB - g) - 1) << g, this[this.t++] = h >> this.DB - g) : this[this.t - 1] |= h << g, g += c, g >= this.DB && (g -= this.DB))
    }
    8 == c && 0 != (128 & a[0]) && (this.s = -1, g > 0 && (this[this.t - 1] |= (1 << this.DB - g) - 1 << g)), this.clamp(), f && d.ZERO.subTo(this, this)
}

function o() {
    for (var a = this.s & this.DM; this.t > 0 && this[this.t - 1] == a;)--this.t
}

function p(a) {
    if (this.s < 0) return "-" + this.negate().toString(a);
    var b;
    if (16 == a) b = 4;
    else if (8 == a) b = 3;
    else if (2 == a) b = 1;
    else if (32 == a) b = 5;
    else {
        if (4 != a) return this.toRadix(a);
        b = 2
    }
    var c, d = (1 << b) - 1,
        e = !1,
        f = "",
        g = this.t,
        h = this.DB - g * this.DB % b;
    if (g-- > 0) for (h < this.DB && (c = this[g] >> h) > 0 && (e = !0, f = i(c)); g >= 0;)
    b > h ? (c = (this[g] & (1 << h) - 1) << b - h, c |= this[--g] >> (h += this.DB - b)) : (c = this[g] >> (h -= b) & d, 0 >= h && (h += this.DB, --g)), c > 0 && (e = !0), e && (f += i(c));
    return e ? f : "0"
}

function q() {
    var a = e();
    return d.ZERO.subTo(this, a), a
}

function r() {
    return this.s < 0 ? this.negate() : this
}

function s(a) {
    var b = this.s - a.s;
    if (0 != b) return b;
    var c = this.t;
    if (b = c - a.t, 0 != b) return this.s < 0 ? -b : b;
    for (; --c >= 0;)
    if (0 != (b = this[c] - a[c])) return b;
    return 0
}

function t(a) {
    var b, c = 1;
    return 0 != (b = a >>> 16) && (a = b, c += 16), 0 != (b = a >> 8) && (a = b, c += 8), 0 != (b = a >> 4) && (a = b, c += 4), 0 != (b = a >> 2) && (a = b, c += 2), 0 != (b = a >> 1) && (a = b, c += 1), c
}

function u() {
    return this.t <= 0 ? 0 : this.DB * (this.t - 1) + t(this[this.t - 1] ^ this.s & this.DM)
}

function v(a, b) {
    var c;
    for (c = this.t - 1; c >= 0; --c)
    b[c + a] = this[c];
    for (c = a - 1; c >= 0; --c)
    b[c] = 0;
    b.t = this.t + a, b.s = this.s
}

function w(a, b) {
    for (var c = a; c < this.t; ++c)
    b[c - a] = this[c];
    b.t = Math.max(this.t - a, 0), b.s = this.s
}

function x(a, b) {
    var c, d = a % this.DB,
        e = this.DB - d,
        f = (1 << e) - 1,
        g = Math.floor(a / this.DB),
        h = this.s << d & this.DM;
    for (c = this.t - 1; c >= 0; --c)
    b[c + g + 1] = this[c] >> e | h, h = (this[c] & f) << d;
    for (c = g - 1; c >= 0; --c)
    b[c] = 0;
    b[g] = h, b.t = this.t + g + 1, b.s = this.s, b.clamp()
}

function y(a, b) {
    b.s = this.s;
    var c = Math.floor(a / this.DB);
    if (c >= this.t) return void(b.t = 0);
    var d = a % this.DB,
        e = this.DB - d,
        f = (1 << d) - 1;
    b[0] = this[c] >> d;
    for (var g = c + 1; g < this.t; ++g)
    b[g - c - 1] |= (this[g] & f) << e, b[g - c] = this[g] >> d;
    d > 0 && (b[this.t - c - 1] |= (this.s & f) << e), b.t = this.t - c, b.clamp()
}

function z(a, b) {
    for (var c = 0, d = 0, e = Math.min(a.t, this.t); e > c;)
    d += this[c] - a[c], b[c++] = d & this.DM, d >>= this.DB;
    if (a.t < this.t) {
        for (d -= a.s; c < this.t;)
        d += this[c], b[c++] = d & this.DM, d >>= this.DB;
        d += this.s
    } else {
        for (d += this.s; c < a.t;)
        d -= a[c], b[c++] = d & this.DM, d >>= this.DB;
        d -= a.s
    }
    b.s = 0 > d ? -1 : 0, -1 > d ? b[c++] = this.DV + d : d > 0 && (b[c++] = d), b.t = c, b.clamp()
}

function A(a, b) {
    var c = this.abs(),
        e = a.abs(),
        f = c.t;
    for (b.t = f + e.t; --f >= 0;)
    b[f] = 0;
    for (f = 0; f < e.t; ++f)
    b[f + c.t] = c.am(0, e[f], b, f, 0, c.t);
    b.s = 0, b.clamp(), this.s != a.s && d.ZERO.subTo(b, b)
}

function B(a) {
    for (var b = this.abs(), c = a.t = 2 * b.t; --c >= 0;)
    a[c] = 0;
    for (c = 0; c < b.t - 1; ++c) {
        var d = b.am(c, b[c], a, 2 * c, 0, 1);
        (a[c + b.t] += b.am(c + 1, 2 * b[c], a, 2 * c + 1, d, b.t - c - 1)) >= b.DV && (a[c + b.t] -= b.DV, a[c + b.t + 1] = 1)
    }
    a.t > 0 && (a[a.t - 1] += b.am(c, b[c], a, 2 * c, 0, 1)), a.s = 0, a.clamp()
}

function C(a, b, c) {
    var f = a.abs();
    if (!(f.t <= 0)) {
        var g = this.abs();
        if (g.t < f.t) return null != b && b.fromInt(0), void(null != c && this.copyTo(c));
        null == c && (c = e());
        var h = e(),
            i = this.s,
            j = a.s,
            k = this.DB - t(f[f.t - 1]);
        k > 0 ? (f.lShiftTo(k, h), g.lShiftTo(k, c)) : (f.copyTo(h), g.copyTo(c));
        var l = h.t,
            m = h[l - 1];
        if (0 != m) {
            var n = m * (1 << this.F1) + (l > 1 ? h[l - 2] >> this.F2 : 0),
                o = this.FV / n,
                p = (1 << this.F1) / n,
                q = 1 << this.F2,
                r = c.t,
                s = r - l,
                u = null == b ? e() : b;
            for (h.dlShiftTo(s, u), c.compareTo(u) >= 0 && (c[c.t++] = 1, c.subTo(u, c)), d.ONE.dlShiftTo(l, u), u.subTo(h, h); h.t < l;)
            h[h.t++] = 0;
            for (; --s >= 0;) {
                var v = c[--r] == m ? this.DM : Math.floor(c[r] * o + (c[r - 1] + q) * p);
                if ((c[r] += h.am(0, v, c, s, 0, l)) < v) for (h.dlShiftTo(s, u), c.subTo(u, c); c[r] < --v;)
                c.subTo(u, c)
            }
            null != b && (c.drShiftTo(l, b), i != j && d.ZERO.subTo(b, b)), c.t = l, c.clamp(), k > 0 && c.rShiftTo(k, c), 0 > i && d.ZERO.subTo(c, c)
        }
    }
}

function D(a) {
    var b = e();
    return this.abs().divRemTo(a, null, b), this.s < 0 && b.compareTo(d.ZERO) > 0 && a.subTo(b, b), b
}

function E(a) {
    this.m = a
}

function F(a) {
    return a.s < 0 || a.compareTo(this.m) >= 0 ? a.mod(this.m) : a
}

function G(a) {
    return a
}

function H(a) {
    a.divRemTo(this.m, null, a)
}

function I(a, b, c) {
    a.multiplyTo(b, c), this.reduce(c)
}

function J(a, b) {
    a.squareTo(b), this.reduce(b)
}

function K() {
    if (this.t < 1) return 0;
    var a = this[0];
    if (0 == (1 & a)) return 0;
    var b = 3 & a;
    return b = b * (2 - (15 & a) * b) & 15, b = b * (2 - (255 & a) * b) & 255, b = b * (2 - ((65535 & a) * b & 65535)) & 65535, b = b * (2 - a * b % this.DV) % this.DV, b > 0 ? this.DV - b : -b
}

function L(a) {
    this.m = a, this.mp = a.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << a.DB - 15) - 1, this.mt2 = 2 * a.t
}

function M(a) {
    var b = e();
    return a.abs().dlShiftTo(this.m.t, b), b.divRemTo(this.m, null, b), a.s < 0 && b.compareTo(d.ZERO) > 0 && this.m.subTo(b, b), b
}

function N(a) {
    var b = e();
    return a.copyTo(b), this.reduce(b), b
}

function O(a) {
    for (; a.t <= this.mt2;)
    a[a.t++] = 0;
    for (var b = 0; b < this.m.t; ++b) {
        var c = 32767 & a[b],
            d = c * this.mpl + ((c * this.mph + (a[b] >> 15) * this.mpl & this.um) << 15) & a.DM;
        for (c = b + this.m.t, a[c] += this.m.am(0, d, a, b, 0, this.m.t); a[c] >= a.DV;)
        a[c] -= a.DV, a[++c]++
    }
    a.clamp(), a.drShiftTo(this.m.t, a), a.compareTo(this.m) >= 0 && a.subTo(this.m, a)
}

function P(a, b) {
    a.squareTo(b), this.reduce(b)
}

function Q(a, b, c) {
    a.multiplyTo(b, c), this.reduce(c)
}

function R() {
    return 0 == (this.t > 0 ? 1 & this[0] : this.s)
}

function S(a, b) {
    if (a > 4294967295 || 1 > a) return d.ONE;
    var c = e(),
        f = e(),
        g = b.convert(this),
        h = t(a) - 1;
    for (g.copyTo(c); --h >= 0;)
    if (b.sqrTo(c, f), (a & 1 << h) > 0) b.mulTo(f, g, c);
    else {
        var i = c;
        c = f, f = i
    }
    return b.revert(c)
}

function T(a, b) {
    var c;
    return c = 256 > a || b.isEven() ? new E(b) : new L(b), this.exp(a, c)
}

function U() {
    this.i = 0, this.j = 0, this.S = new Array
}

function V(a) {
    var b, c, d;
    for (b = 0; 256 > b; ++b)
    this.S[b] = b;
    for (c = 0, b = 0; 256 > b; ++b)
    c = c + this.S[b] + a[b % a.length] & 255, d = this.S[b], this.S[b] = this.S[c], this.S[c] = d;
    this.i = 0, this.j = 0
}

function W() {
    var a;
    return this.i = this.i + 1 & 255, this.j = this.j + this.S[this.i] & 255, a = this.S[this.i], this.S[this.i] = this.S[this.j], this.S[this.j] = a, this.S[a + this.S[this.i] & 255]
}

function X() {
    return new U
}

function Y(a) {
    qb[rb++] ^= 255 & a, qb[rb++] ^= a >> 8 & 255, qb[rb++] ^= a >> 16 & 255, qb[rb++] ^= a >> 24 & 255, rb >= sb && (rb -= sb)
}

function Z() {
    Y((new Date).getTime())
}

function $() {
    if (null == pb) {
        for (Z(), pb = X(), pb.init(qb), rb = 0; rb < qb.length; ++rb)
        qb[rb] = 0;
        rb = 0
    }
    return pb.next()
}

function _(a) {
    var b;
    for (b = 0; b < a.length; ++b)
    a[b] = $()
}

function ab() {}

function bb(a, b) {
    return new d(a, b)
}

function cb(a, b) {
    if (b < a.length + 11) return alert("Message too long for RSA"), null;
    for (var c = new Array, e = a.length - 1; e >= 0 && b > 0;) {
        var f = a.charCodeAt(e--);
        128 > f ? c[--b] = f : f > 127 && 2048 > f ? (c[--b] = 63 & f | 128, c[--b] = f >> 6 | 192) : (c[--b] = 63 & f | 128, c[--b] = f >> 6 & 63 | 128, c[--b] = f >> 12 | 224)
    }
    c[--b] = 0;
    for (var g = new ab, h = new Array; b > 2;) {
        for (h[0] = 0; 0 == h[0];)
        g.nextBytes(h);
        c[--b] = h[0]
    }
    return c[--b] = 2, c[--b] = 0, new d(c)
}

function db() {
    this.n = null, this.e = 0, this.d = null, this.p = null, this.q = null, this.dmp1 = null, this.dmq1 = null, this.coeff = null
}

function eb(a, b) {
    null != a && null != b && a.length > 0 && b.length > 0 ? (this.n = bb(a, 16), this.e = parseInt(b, 16)) : alert("网络异常,请点击登录重试")
}

function fb(a) {
    return a.modPowInt(this.e, this.n)
}

function gb(a) {
    var b = cb(a, this.n.bitLength() + 7 >> 3);
    if (null == b) return null;
    var c = this.doPublic(b);
    if (null == c) return null;
    var d = c.toString(16);
    return 0 == (1 & d.length) ? d : "0" + d
}
var hb, ib = 0xdeadbeefcafe,
    jb = 15715070 == (16777215 & ib);
jb && "Microsoft Internet Explorer" == navigator.appName ? (d.prototype.am = g, hb = 30) : jb && "Netscape" != navigator.appName ? (d.prototype.am = f, hb = 26) : (d.prototype.am = h, hb = 28), d.prototype.DB = hb, d.prototype.DM = (1 << hb) - 1, d.prototype.DV = 1 << hb;
var kb = 52;
d.prototype.FV = Math.pow(2, kb), d.prototype.F1 = kb - hb, d.prototype.F2 = 2 * hb - kb;
var lb, mb, nb = "0123456789abcdefghijklmnopqrstuvwxyz",
    ob = new Array;
for (lb = "0".charCodeAt(0), mb = 0; 9 >= mb; ++mb)
ob[lb++] = mb;
for (lb = "a".charCodeAt(0), mb = 10; 36 > mb; ++mb)
ob[lb++] = mb;
for (lb = "A".charCodeAt(0), mb = 10; 36 > mb; ++mb)
ob[lb++] = mb;
E.prototype.convert = F, E.prototype.revert = G, E.prototype.reduce = H, E.prototype.mulTo = I, E.prototype.sqrTo = J, L.prototype.convert = M, L.prototype.revert = N, L.prototype.reduce = O, L.prototype.mulTo = Q, L.prototype.sqrTo = P, d.prototype.copyTo = k, d.prototype.fromInt = l, d.prototype.fromString = n, d.prototype.clamp = o, d.prototype.dlShiftTo = v, d.prototype.drShiftTo = w, d.prototype.lShiftTo = x, d.prototype.rShiftTo = y, d.prototype.subTo = z, d.prototype.multiplyTo = A, d.prototype.squareTo = B, d.prototype.divRemTo = C, d.prototype.invDigit = K, d.prototype.isEven = R, d.prototype.exp = S, d.prototype.toString = p, d.prototype.negate = q, d.prototype.abs = r, d.prototype.compareTo = s, d.prototype.bitLength = u, d.prototype.mod = D, d.prototype.modPowInt = T, d.ZERO = m(0), d.ONE = m(1), U.prototype.init = V, U.prototype.next = W;
var pb, qb, rb, sb = 256;
if (null == qb) {
    qb = new Array, rb = 0;
    var tb;
    if (window.crypto && window.crypto.getRandomValues) {
        var ub = new Uint8Array(32);
        for (window.crypto.getRandomValues(ub), tb = 0; 32 > tb; ++tb)
        qb[rb++] = ub[tb]
    }
    if ("Netscape" == navigator.appName && navigator.appVersion < "5" && window.crypto) {
        var vb = window.crypto.random(32);
        for (tb = 0; tb < vb.length; ++tb)
        qb[rb++] = 255 & vb.charCodeAt(tb)
    }
    for (; sb > rb;)
    tb = Math.floor(65536 * Math.random()), qb[rb++] = tb >>> 8, qb[rb++] = 255 & tb;
    rb = 0, Z()
}
ab.prototype.nextBytes = _, db.prototype.doPublic = fb, db.prototype.setPublic = eb, db.prototype.encrypt = gb
RSAKey = db

function getPwd(pwd,a) {
    c = new RSAKey;
    c.setPublic(a.result.modulus, a.result.publicExponent);
    var d = c.encrypt(pwd);
    return d;
}

function rsaFingerprint(a, b) {
    var c = '{"user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88","language":"zh-CN","color_depth":"24","pixel_ratio":"1","hardware_concurrency":"12","resolution":"1920,1080","available_resolution":"1920,1040","timezone_offset":"-480","session_storage":"1","local_storage":"1","indexed_db":"1","open_database":"1","cpu_class":"unknown","navigator_platform":"Win32","do_not_track":"unknown","regular_plugins":"Chrome PDF Plugin::Portable Document Format::application/x-google-chrome-pdf~pdf,Chrome PDF Viewer::","webgl_vendor":"Google Inc.~ANGLE (Intel(R) UHD Graphics 630 Direct3D11 vs_5_0 ps_5_0)","adblock":"false","has_lied_languages":"false","has_lied_resolution":"false","has_lied_os":"false","has_lied_browser":"false","touch_support":"0,false,false","js_fonts":"Arial,Arial Black,Arial Narrow,Calibri,Cambria,Cambria Math,Comic Sans MS,Consolas,Courier,Courier N"}'
    ,
        d = "f423f89301a9886a3cb8cc2f8748b966",
        e = c.length,
        f = "",
        g = new RSAKey;
    g.setPublic(a, b);
    for (var h = g.encrypt(d), i = 0; e > i; i += 117)
    f += g.encrypt(c.substr(i, 117));
    return {
        details: f,
        result: h
    }
}

"""
other_js = """

4.途牛网

var hexcase = 0;
var b64pad = "";
var chrsz = 8;

function hex_md5(s) {
    return binl2hex(core_md5(str2binl(s), s.length * chrsz));
}

function b64_md5(s) {
    return binl2b64(core_md5(str2binl(s), s.length * chrsz));
}

function str_md5(s) {
    return binl2str(core_md5(str2binl(s), s.length * chrsz));
}

function hex_hmac_md5(key, data) {
    return binl2hex(core_hmac_md5(key, data));
}

function b64_hmac_md5(key, data) {
    return binl2b64(core_hmac_md5(key, data));
}

function str_hmac_md5(key, data) {
    return binl2str(core_hmac_md5(key, data));
}

function md5_vm_test() {
    return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}

function core_md5(x, len) {
    x[len >> 5] |= 0x80 << ((len) % 32);
    x[(((len + 64) >>> 9) << 4) + 14] = len;
    var a = 1732584193;
    var b = -271733879;
    var c = -1732584194;
    var d = 271733878;
    for (var i = 0; i < x.length; i += 16) {
        var olda = a;
        var oldb = b;
        var oldc = c;
        var oldd = d;
        a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936);
        d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
        c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
        b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
        a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
        d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
        c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
        b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
        a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
        d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
        c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
        b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
        a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
        d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
        c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
        b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
        a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
        d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
        c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
        b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302);
        a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
        d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
        c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
        b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
        a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
        d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
        c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
        b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
        a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
        d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
        c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
        b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
        a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
        d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
        c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
        b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
        a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
        d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
        c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
        b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
        a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
        d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222);
        c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
        b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
        a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
        d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
        c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
        b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
        a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844);
        d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
        c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
        b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
        a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
        d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
        c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
        b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
        a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
        d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
        c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
        b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
        a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
        d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
        c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
        b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
        a = safe_add(a, olda);
        b = safe_add(b, oldb);
        c = safe_add(c, oldc);
        d = safe_add(d, oldd);
    }
    return Array(a, b, c, d);
}

function md5_cmn(q, a, b, x, s, t) {
    return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
}

function md5_ff(a, b, c, d, x, s, t) {
    return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}

function md5_gg(a, b, c, d, x, s, t) {
    return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}

function md5_hh(a, b, c, d, x, s, t) {
    return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}

function md5_ii(a, b, c, d, x, s, t) {
    return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}

function core_hmac_md5(key, data) {
    var bkey = str2binl(key);
    if (bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
    var ipad = Array(16),
        opad = Array(16);
    for (var i = 0; i < 16; i++) {
        ipad[i] = bkey[i] ^ 0x36363636;
        opad[i] = bkey[i] ^ 0x5C5C5C5C;
    }
    var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
    return core_md5(opad.concat(hash), 512 + 128);
}

function safe_add(x, y) {
    var lsw = (x & 0xFFFF) + (y & 0xFFFF);
    var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
    return (msw << 16) | (lsw & 0xFFFF);
}

function bit_rol(num, cnt) {
    return (num << cnt) | (num >>> (32 - cnt));
}

function str2binl(str) {
    var bin = Array();
    var mask = (1 << chrsz) - 1;
    for (var i = 0; i < str.length * chrsz; i += chrsz)
    bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i % 32);
    return bin;
}

function binl2str(bin) {
    var str = "";
    var mask = (1 << chrsz) - 1;
    for (var i = 0; i < bin.length * 32; i += chrsz)
    str += String.fromCharCode((bin[i >> 5] >>> (i % 32)) & mask);
    return str;
}

function binl2hex(binarray) {
    var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
    var str = "";
    for (var i = 0; i < binarray.length * 4; i++) {
        str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF);
    }
    return str;
}

function binl2b64(binarray) {
    var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    var str = "";
    for (var i = 0; i < binarray.length * 4; i += 3) {
        var triplet = (((binarray[i >> 2] >> 8 * (i % 4)) & 0xFF) << 16) | (((binarray[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 0xFF) << 8) | ((binarray[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 0xFF);
        for (var j = 0; j < 4; j++) {
            if (i * 8 + j * 6 > binarray.length * 32) str += b64pad;
            else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F);
        }
    }
    return str;
}
hex_md5('abc123456')

5.39健康网

f0 = function(a) {
    var f, b = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"),
        c = new Array(116, 120, 122, 51, 57),
        d = encodeURIComponent(a),
        e = "";
    for (i = 0; i < d.length; i++) f = c[i % 5], s = String.fromCharCode(d.charCodeAt(i) ^ f), e += b[s.charCodeAt(0) >> 4] + b[15 & s.charCodeAt(0)];
    return e
}
f0('abc123456')

如有侵犯您的利益,+qq:2867395035立马进行修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js逆向登录破解 的相关文章

  • 栈破坏下crash的分析方法

    在众多的coredump中 有一类crash调试起来是最麻烦的 那就是 栈被破坏 导致的函数调用回溯结构破坏引发的coredump 本文 主要讲讲这一类crash的成因 原理以及调试方法 1 SMTC show me the code 首先
  • 数据包络分析--保证域方法(assurance region method)附python代码以及案例

    Data envelopment analysis Assurance region method 保证域方法 Data envelopment analysis Assurance region method model AR 有效 py
  • ARIMA时间序列预测MATLAB代码模板(无需调试)

    小白专用 直接改成自己的数据运行即可完成预测并画图 我的数据在评论区自取 clear clc 小白专用 需要自己输入 仅在有这种注释的地方改成自己的数据即可 一共有4个地方 DD readmatrix B xlsx 这里输入自己的单序列数据
  • 云服务的应用场景,为什么要用云服务(学习心得)

    降低IT支出成本 云服务器无需硬件设施及机房 兼具优质扩容能力 门户网站 社区网站 电商网站 免除硬件配置与升级的忧虑 专注于服务功能的开发 大大减少网站IT基础设施成本 及运维成本 弹性扩展云服务器 当服务器需求不固定 预先估计不准确时
  • 基于动态规划的强化学习方法

    quad quad 基于动态规划的强化学习方法 quad 动态规划 dynamic programming 是程序设计算法中非常重要的内容 能够高效解决一些经典问题
  • VScode搭建Vue环境(2)

    VScode搭建Vue环境 2 目录 1 全局安装下载vue cli 2 创建项目 1 命令行创建 2 GUI创建 3 如果无法在终端打开 请看下方图片 方法1 方法2 在上一篇文章中我们下载安装并配置好了nodejs 并可以在全局环境中下
  • jQuery的Ajax实例(附完整代码)

    目录 写在前边 什么是Ajax Ajax基本结构 实例 实例1 实例2 小结 写在前边 作为一个前端刚入门没多久的小白 想在这里分享一下我的学习内容 就算是学习笔记了 因为前端的大部分学习都是通过网站上的教程 所以遇到不懂得问题 也只有求助
  • linux下保护模式之CPL,RPL,DPL总结

    linux下保护模式之CPL RPL DPL总结 先说下特权级的概念 在保护模式下 系统依靠特权级来实施代码和数据的保护 相当于权限啦 特权级共有4 个级别 0 1 2 3 数字越小特权越高 较为核心的代码和数据放在较高 靠内 的层级中 处
  • RabbitMQ-安装与配置-linux

    1 安装RabbitMQ 安装方式一 下载rabbitmq镜像 3 management为带管理界面的rabbitmq 启动rabbitmq镜像 5672端口是客户端和容器的通信端口 15672端口是web管理界面的通信端口 访问并登录we
  • Python批量插入数据

    Python批量插入数据到mysql中 相较于jdbc 简化了长度 占位符使用的 s而不是 import mysql connector as conn def getConn db conn connect host localhost
  • 分布式查找过程[HBase]Region location

    HBase的table是该region切分的 client操作一个row的时候 如何知道这个row对应的region是在哪台Region server上呢 这里有个region location过程 主要涉及到2张系统表 ROOT META
  • 重复代码检查工具Simian

    简介 Simian是一个可跨平台使用的重复代码检测工具 能够检测代码片段中除了空格 注释及换行外的内容是否完全一致 且支持的语言十分广泛 官网 Simian官网 http www harukizaemon com simian index
  • 《数字图像处理》学习总结及感悟:第二章数字图像基础(2)电磁波、传感器及辐射成像原理

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 本系列文章记录老猿自学冈萨雷斯 数字图像处理 的感悟和总结 不过估计更新会比较慢 白天要工作 都是晚上抽空学习 学习完一章再回头总结
  • 华为OD机试真题-最短木板长度【2023.Q1】

    题目描述 小明有 n 块木板 第 i 1 i n 块木板长度为 ai 小明买了一块长度为 m 的木料 这块木料可以切割成任意块 拼接到已有的木板上 用来加长木板 小明想让最短的木板尽量长 请问小明加长木板后 最短木板的长度可以为多少 输入描
  • 第三章 FlinkCDC专题之Mysql-CDC-source基础练习(stream形式)

    1 导入依赖
  • js开发的小问题汇总

    js开发的小问题汇总 1 require js 中引入jquery插件 以cookie为例 require js 最基本写法为 require config paths jquery jquery 1 11 1 min domReady r
  • RK3568开发环境搭建

    前面我给大家展示了RK3568的开发板 但是并没有对RK3568的芯片资源进行描述 这里简单给大家看下该芯片的资源 具体的请看瑞芯微官网https www rock chips com 对芯片有了写了解之后 下面就开始搭建开发环境 让我们早
  • 文章发布测试

    测试文章收益能得多少钱
  • MATLAB入门教程(3):数组的创建与使用

    前言 代码粘贴后并不好看 故使用图片粘贴如下 代码部分是我在MATLAB里面加的注释版本 使用版本为MATLAB R2022a 咱们理解数组这个概念可以类比向量 就是由几个数字构成的一个变量 咱们称其为数组 一 手动创建数组 前面说数组可以
  • 使用Altium Designer报错的处理记录 2 :could not find board outline using primitives centerline

    2 报错内容 could not find board outline using primitives ceterline due to the following errors 出现原因及解决办法 导入DWG外形文件后 圆弧上有很多段线

随机推荐

  • sql注入原理

    sql注入
  • egg:Error: controller not exists

    前言 在学习和运用node的egg时的报错信息记录 报错 解决办法 确定router js里面的路由和自己写的Controller相匹配 确定你在controller最后一行写了module exports 个人问题 router js里面
  • 什么是图表设计,图表设计的意思

    在信息时代中 一些数据的价值需要经过深度的挖掘之后才能够表现出来 当我们使用分析工具挖掘出数据的价值之后 就需要找到一种合适的方式来表达数据 对于当前的数据管理工作来说 真正能够帮助人们完美的呈现数据的工具就是图表 图表会让数据可视化的效果
  • chatglm微调

    chatGML 看到 官方教程 ChatGLM 6B 微调 P Tuning LoRA Full parameter 精准空降到 15 27 https www bilibili com video BV1fd4y1Z7Y5 share s
  • [论文阅读] (12)英文论文引言introduction如何撰写及精句摘抄——以入侵检测系统(IDS)为例

    娜璋带你读论文 系列主要是督促自己阅读优秀论文及听取学术讲座 并分享给大家 希望您喜欢 由于作者的英文水平和学术能力不高 需要不断提升 所以还请大家批评指正 非常欢迎大家给我留言评论 学术路上期待与您前行 加油 前一篇文章详细介绍ACE去雾
  • JS与CSS交互&表单验证

    目录 一 基本概念 1 基本介绍 2 JavaScript 特效之四大家族 1 基本组成 1 三大系列 offset scroll client 2 事件对象 event 3 三大家族区别 二 表单验证 1 表单验证思路 一 基本概念 1
  • Android Studio 下载 Gradle 失败或下载速度慢的解决方案

    方案1 参考文档 方案2 参考文档 方案3 更改 Android Studio 中使用的 Gradle 的路径 在安装 Android Studio 时 会默认安装一个 Gradle 版本 文件在 Android Studio 安装目录的根
  • 刷力扣算法--蓝桥杯备战

    刷题网站 https leetcode cn com problems container with most water submissions 参考书籍 LeetCode 101 和你一起你轻松刷题 C 使用语言 python 记录刷题
  • 东北大学acm第一周周赛

    include
  • 48使用说明书_十分钟不到,就学会使用乐高studio2.0做图纸啦!上

    猜一猜第五个齿轮是朝左转动还是朝右转动 点击空白处查看答案 大家看了端午节的龙舟图纸 在后台留言希望我出一个studio20的入门教程 今天zfeng老师带着入门教程来啦 乐高积木作为最受欢迎的玩具之一 对大人小孩都有着非常大的吸引力 乐高
  • 计算机网络复习题2(含答案及解析及知识点)

    1 影响信道最大传输速率的因素主要有 A A 信道带宽和信噪比 B 码元传输速率和噪声功率 C 频率特性和带宽 D 发送功率和噪声功率 香农定理 带宽受限 有噪声时 极限 无差错的信息传输速率 分贝数 dB 10lg S N 例如信噪比是3
  • Vue动态路由传值和Get传值

    Vue动态路由 在一个页面获取上一个页面的传值 1 配置动态路由步骤 const routes main js文件中 path Content aid component Content 动态路径参数以冒号开头 在上一个页面中配置
  • QT:只允许在自定义标题栏中鼠标拖动控制窗口位置

    目录 说明 效果展示 代码 说明 在使用了自定义的标题栏 想要实现鼠标只能在标题栏中拖动窗口 在其它地方拖动不了窗口的效果 我们这里是在标题栏类的鼠标事件中处理拖动窗口的事情 实现过程 标题栏类中的鼠标事件获取了拖动位置后 通过移动标题栏的
  • 解决java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

    场景 把本地写好的SDK推到公司maven库里 执行 gt gradlew bat p sdk名称 clean uploadArchives 时遇到标题样式的报错 解决 Android目录下 Gradle Scripts gradle wr
  • VS2010+Qt5+OSG3.0开发环境搭建

    一 VS2010 VS2010的安装网上教程很多 不再叙述 二 Qt 在VS中开发程序 需要下载Qt安装包和Qt的VS插件 我用的版本是Qt5 1 1 for Windows VS2010 OpenGL VisualStudio Add i
  • umi脚手架环境下 实现H5页面路由转场动画

    目录 环境介绍 核心思路 核心代码所在目录中位置 核心代码的讲解 效果图 gitHub 地址 umi3 demo 环境介绍 umi 是一个可插拔的企业级 react 应用框架 我们使用 react transition group 动画库来
  • Python绘图之seaborn(一)

    最近在系统梳理一下Python的几个可视化绘图库 其中seaborn上手较为方便快捷 下面给大家简单介绍一下 可以满足自己日常需要的绘图要求 Seaborn 是一个基于 matplotlib 且数据结构与 pandas 统一的统计图制作库
  • 请领导审阅并提意见应怎么说_成功的领导是怎样跟下属沟通的?在交谈的时候,应当注意这三点...

    成功的领导者都是善于沟通的人 与员工沟通的目的是让员工了解公司的目标 传达正确的指令 激励员工共同努力完成任务 征服员工的心 靠的不是说教的语言 而是灌输伟大的真理 但要善于换位思考 知道员工想追随什么样的领导 用自己的言行影响员工 一 应
  • Windows Server 2003网络配置与管理 安装Active Directory

    安装Active Directory 域控制器是通过安装Active Directory来创建的 执行安装Active Directory的账户必须是本地计算机Administrators组的成员 或者是被委派有Administrators
  • js逆向登录破解

    如有侵犯您的利益 qq 2867395035立马进行修改 1 x奇艺逆向登录破解 window this window M window M M 211 function a b return function if b a execute