Greasy Fork

PajHome-MD5-min

Biblio MD5 Decrypt-Encrypt minifier

目前为 2018-03-28 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.icu/scripts/40003/261687/PajHome-MD5-min.js

/*
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
 * Digest Algorithm, as defined in RFC 1321.
 * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for more info.
 */
!function(r) {
    var t = 0;
    var d = "";
    function hex_md5(r) {
        return rstr2hex(rstr_md5(r));
    }
    function b64_md5(r) {
        return rstr2b64(rstr_md5(r));
    }
    function any_md5(r, t) {
        return rstr2any(rstr_md5(r), t);
    }
    function hex_hmac_md5(r, t) {
        return rstr2hex(rstr_hmac_md5(r, t));
    }
    function b64_hmac_md5(r, t) {
        return rstr2b64(rstr_hmac_md5(r, t));
    }
    function any_hmac_md5(r, t, d) {
        return rstr2any(rstr_hmac_md5(r, t), d);
    }
    function md5_vm_test() {
        return "900150983cd24fb0d6963f7d28e17f72" == hex_md5("abc").toLowerCase();
    }
    function rstr_md5(r) {
        return binl2rstr(binl_md5(rstr2binl(r), 8 * r.length));
    }
    function rstr_hmac_md5(r, t) {
        var d = rstr2binl(r);
        d.length > 16 && (d = binl_md5(d, 8 * r.length));
        var _ = Array(16), m = Array(16);
        for (var n = 0; n < 16; n++) _[n] = 909522486 ^ d[n], m[n] = 1549556828 ^ d[n];
        var a = binl_md5(_.concat(rstr2binl(t)), 512 + 8 * t.length);
        return binl2rstr(binl_md5(m.concat(a), 640));
    }
    function rstr2hex(r) {
        var d = t ? "0123456789ABCDEF" : "0123456789abcdef";
        var _ = "";
        var m;
        for (var n = 0; n < r.length; n++) m = r.charCodeAt(n), _ += d.charAt(m >>> 4 & 15) + d.charAt(15 & m);
        return _;
    }
    function rstr2b64(r) {
        var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
        var _ = "";
        var m = r.length;
        for (var n = 0; n < m; n += 3) {
            var a = r.charCodeAt(n) << 16 | (n + 1 < m ? r.charCodeAt(n + 1) << 8 : 0) | (n + 2 < m ? r.charCodeAt(n + 2) : 0);
            for (var h = 0; h < 4; h++) 8 * n + 6 * h > 8 * r.length ? _ += d : _ += t.charAt(a >>> 6 * (3 - h) & 63);
        }
        return _;
    }
    function rstr2any(r, t) {
        var d = t.length;
        var _, m, n, a, h;
        var e = Array(Math.ceil(r.length / 2));
        for (_ = 0; _ < e.length; _++) e[_] = r.charCodeAt(2 * _) << 8 | r.charCodeAt(2 * _ + 1);
        var f = Math.ceil(8 * r.length / (Math.log(t.length) / Math.log(2)));
        var i = Array(f);
        for (m = 0; m < f; m++) {
            for (h = Array(), a = 0, _ = 0; _ < e.length; _++) a = (a << 16) + e[_], n = Math.floor(a / d), 
            a -= n * d, (h.length > 0 || n > 0) && (h[h.length] = n);
            i[m] = a, e = h;
        }
        var o = "";
        for (_ = i.length - 1; _ >= 0; _--) o += t.charAt(i[_]);
        return o;
    }
    function str2rstr_utf8(r) {
        var t = "";
        var d = -1;
        var _, m;
        for (;++d < r.length; ) _ = r.charCodeAt(d), m = d + 1 < r.length ? r.charCodeAt(d + 1) : 0, 
        55296 <= _ && _ <= 56319 && 56320 <= m && m <= 57343 && (_ = 65536 + ((1023 & _) << 10) + (1023 & m), 
        d++), _ <= 127 ? t += String.fromCharCode(_) : _ <= 2047 ? t += String.fromCharCode(192 | _ >>> 6 & 31, 128 | 63 & _) : _ <= 65535 ? t += String.fromCharCode(224 | _ >>> 12 & 15, 128 | _ >>> 6 & 63, 128 | 63 & _) : _ <= 2097151 && (t += String.fromCharCode(240 | _ >>> 18 & 7, 128 | _ >>> 12 & 63, 128 | _ >>> 6 & 63, 128 | 63 & _));
        return t;
    }
    function str2rstr_utf16le(r) {
        var t = "";
        for (var d = 0; d < r.length; d++) t += String.fromCharCode(255 & r.charCodeAt(d), r.charCodeAt(d) >>> 8 & 255);
        return t;
    }
    function str2rstr_utf16be(r) {
        var t = "";
        for (var d = 0; d < r.length; d++) t += String.fromCharCode(r.charCodeAt(d) >>> 8 & 255, 255 & r.charCodeAt(d));
        return t;
    }
    function rstr2binl(r) {
        var t = Array(r.length >> 2);
        for (var d = 0; d < t.length; d++) t[d] = 0;
        for (var _ = 0; _ < 8 * r.length; _ += 8) t[_ >> 5] |= (255 & r.charCodeAt(_ / 8)) << _ % 32;
        return t;
    }
    function binl2rstr(r) {
        var t = "";
        for (var d = 0; d < 32 * r.length; d += 8) t += String.fromCharCode(r[d >> 5] >>> d % 32 & 255);
        return t;
    }
    function binl_md5(r, t) {
        r[t >> 5] |= 128 << t % 32, r[14 + (t + 64 >>> 9 << 4)] = t;
        var d = 1732584193;
        var _ = -271733879;
        var m = -1732584194;
        var n = 271733878;
        for (var a = 0; a < r.length; a += 16) {
            var h = d;
            var e = _;
            var f = m;
            var i = n;
            d = md5_ff(d, _, m, n, r[a + 0], 7, -680876936), n = md5_ff(n, d, _, m, r[a + 1], 12, -389564586), 
            m = md5_ff(m, n, d, _, r[a + 2], 17, 606105819), _ = md5_ff(_, m, n, d, r[a + 3], 22, -1044525330), 
            d = md5_ff(d, _, m, n, r[a + 4], 7, -176418897), n = md5_ff(n, d, _, m, r[a + 5], 12, 1200080426), 
            m = md5_ff(m, n, d, _, r[a + 6], 17, -1473231341), _ = md5_ff(_, m, n, d, r[a + 7], 22, -45705983), 
            d = md5_ff(d, _, m, n, r[a + 8], 7, 1770035416), n = md5_ff(n, d, _, m, r[a + 9], 12, -1958414417), 
            m = md5_ff(m, n, d, _, r[a + 10], 17, -42063), _ = md5_ff(_, m, n, d, r[a + 11], 22, -1990404162), 
            d = md5_ff(d, _, m, n, r[a + 12], 7, 1804603682), n = md5_ff(n, d, _, m, r[a + 13], 12, -40341101), 
            m = md5_ff(m, n, d, _, r[a + 14], 17, -1502002290), _ = md5_ff(_, m, n, d, r[a + 15], 22, 1236535329), 
            d = md5_gg(d, _, m, n, r[a + 1], 5, -165796510), n = md5_gg(n, d, _, m, r[a + 6], 9, -1069501632), 
            m = md5_gg(m, n, d, _, r[a + 11], 14, 643717713), _ = md5_gg(_, m, n, d, r[a + 0], 20, -373897302), 
            d = md5_gg(d, _, m, n, r[a + 5], 5, -701558691), n = md5_gg(n, d, _, m, r[a + 10], 9, 38016083), 
            m = md5_gg(m, n, d, _, r[a + 15], 14, -660478335), _ = md5_gg(_, m, n, d, r[a + 4], 20, -405537848), 
            d = md5_gg(d, _, m, n, r[a + 9], 5, 568446438), n = md5_gg(n, d, _, m, r[a + 14], 9, -1019803690), 
            m = md5_gg(m, n, d, _, r[a + 3], 14, -187363961), _ = md5_gg(_, m, n, d, r[a + 8], 20, 1163531501), 
            d = md5_gg(d, _, m, n, r[a + 13], 5, -1444681467), n = md5_gg(n, d, _, m, r[a + 2], 9, -51403784), 
            m = md5_gg(m, n, d, _, r[a + 7], 14, 1735328473), _ = md5_gg(_, m, n, d, r[a + 12], 20, -1926607734), 
            d = md5_hh(d, _, m, n, r[a + 5], 4, -378558), n = md5_hh(n, d, _, m, r[a + 8], 11, -2022574463), 
            m = md5_hh(m, n, d, _, r[a + 11], 16, 1839030562), _ = md5_hh(_, m, n, d, r[a + 14], 23, -35309556), 
            d = md5_hh(d, _, m, n, r[a + 1], 4, -1530992060), n = md5_hh(n, d, _, m, r[a + 4], 11, 1272893353), 
            m = md5_hh(m, n, d, _, r[a + 7], 16, -155497632), _ = md5_hh(_, m, n, d, r[a + 10], 23, -1094730640), 
            d = md5_hh(d, _, m, n, r[a + 13], 4, 681279174), n = md5_hh(n, d, _, m, r[a + 0], 11, -358537222), 
            m = md5_hh(m, n, d, _, r[a + 3], 16, -722521979), _ = md5_hh(_, m, n, d, r[a + 6], 23, 76029189), 
            d = md5_hh(d, _, m, n, r[a + 9], 4, -640364487), n = md5_hh(n, d, _, m, r[a + 12], 11, -421815835), 
            m = md5_hh(m, n, d, _, r[a + 15], 16, 530742520), _ = md5_hh(_, m, n, d, r[a + 2], 23, -995338651), 
            d = md5_ii(d, _, m, n, r[a + 0], 6, -198630844), n = md5_ii(n, d, _, m, r[a + 7], 10, 1126891415), 
            m = md5_ii(m, n, d, _, r[a + 14], 15, -1416354905), _ = md5_ii(_, m, n, d, r[a + 5], 21, -57434055), 
            d = md5_ii(d, _, m, n, r[a + 12], 6, 1700485571), n = md5_ii(n, d, _, m, r[a + 3], 10, -1894986606), 
            m = md5_ii(m, n, d, _, r[a + 10], 15, -1051523), _ = md5_ii(_, m, n, d, r[a + 1], 21, -2054922799), 
            d = md5_ii(d, _, m, n, r[a + 8], 6, 1873313359), n = md5_ii(n, d, _, m, r[a + 15], 10, -30611744), 
            m = md5_ii(m, n, d, _, r[a + 6], 15, -1560198380), _ = md5_ii(_, m, n, d, r[a + 13], 21, 1309151649), 
            d = md5_ii(d, _, m, n, r[a + 4], 6, -145523070), n = md5_ii(n, d, _, m, r[a + 11], 10, -1120210379), 
            m = md5_ii(m, n, d, _, r[a + 2], 15, 718787259), _ = md5_ii(_, m, n, d, r[a + 9], 21, -343485551), 
            d = safe_add(d, h), _ = safe_add(_, e), m = safe_add(m, f), n = safe_add(n, i);
        }
        return Array(d, _, m, n);
    }
    function md5_cmn(r, t, d, _, m, n) {
        return safe_add(bit_rol(safe_add(safe_add(t, r), safe_add(_, n)), m), d);
    }
    function md5_ff(r, t, d, _, m, n, a) {
        return md5_cmn(t & d | ~t & _, r, t, m, n, a);
    }
    function md5_gg(r, t, d, _, m, n, a) {
        return md5_cmn(t & _ | d & ~_, r, t, m, n, a);
    }
    function md5_hh(r, t, d, _, m, n, a) {
        return md5_cmn(t ^ d ^ _, r, t, m, n, a);
    }
    function md5_ii(r, t, d, _, m, n, a) {
        return md5_cmn(d ^ (t | ~_), r, t, m, n, a);
    }
    function safe_add(r, t) {
        var d = (65535 & r) + (65535 & t);
        var _ = (r >> 16) + (t >> 16) + (d >> 16);
        return _ << 16 | 65535 & d;
    }
    function bit_rol(r, t) {
        return r << t | r >>> 32 - t;
    }
    r.hex_md5 = hex_md5, r.b64_md5 = b64_md5, r.any_md5 = any_md5, r.hex_hmac_md5 = hex_hmac_md5, 
    r.b64_hmac_md5 = b64_hmac_md5, r.any_hmac_md5 = any_hmac_md5, r.rstr_md5 = rstr_md5, 
    r.rstr_hmac_md5 = rstr_hmac_md5, r.rstr2hex = rstr2hex, r.rstr2b64 = rstr2b64, r.rstr2any = rstr2any, 
    r.rstr2b64 = rstr2b64, r.md5_vm_test = md5_vm_test, r.str2rstr_utf8 = str2rstr_utf8, 
    r.str2rstr_utf16le = str2rstr_utf16le, r.str2rstr_utf16be = str2rstr_utf16be;
}(this);