owtlab-tracking
Version:
A simple Tracking system
496 lines (483 loc) • 15.3 kB
JavaScript
export const MD5 = function (d) {
const result = M(V(Y(X(d), 8 * d.length)));
return result.toLowerCase();
};
function M(d) {
for (var _, m = '0123456789ABCDEF', f = '', r = 0; r < d.length; r++) { (_ = d.charCodeAt(r)), (f += m.charAt((_ >>> 4) & 15) + m.charAt(15 & _)); }
return f;
}
function X(d) {
for (var _ = Array(d.length >> 2), m = 0; m < _.length; m++) _[m] = 0;
for (m = 0; m < 8 * d.length; m += 8) { _[m >> 5] |= (255 & d.charCodeAt(m / 8)) << m % 32; }
return _;
}
function V(d) {
for (var _ = '', m = 0; m < 32 * d.length; m += 8) { _ += String.fromCharCode((d[m >> 5] >>> m % 32) & 255); }
return _;
}
function Y(d, _) {
(d[_ >> 5] |= 128 << _ % 32), (d[14 + (((_ + 64) >>> 9) << 4)] = _);
for (
var m = 1732584193, f = -271733879, r = -1732584194, i = 271733878, n = 0;
n < d.length;
n += 16
) {
const h = m;
const t = f;
const g = r;
const e = i;
(f = md5_ii(
(f = md5_ii(
(f = md5_ii(
(f = md5_ii(
(f = md5_hh(
(f = md5_hh(
(f = md5_hh(
(f = md5_hh(
(f = md5_gg(
(f = md5_gg(
(f = md5_gg(
(f = md5_gg(
(f = md5_ff(
(f = md5_ff(
(f = md5_ff(
(f = md5_ff(
f,
(r = md5_ff(
r,
(i = md5_ff(
i,
(m = md5_ff(
m,
f,
r,
i,
d[n + 0],
7,
-680876936,
)),
f,
r,
d[n + 1],
12,
-389564586,
)),
m,
f,
d[n + 2],
17,
606105819,
)),
i,
m,
d[n + 3],
22,
-1044525330,
)),
(r = md5_ff(
r,
(i = md5_ff(
i,
(m = md5_ff(
m,
f,
r,
i,
d[n + 4],
7,
-176418897,
)),
f,
r,
d[n + 5],
12,
1200080426,
)),
m,
f,
d[n + 6],
17,
-1473231341,
)),
i,
m,
d[n + 7],
22,
-45705983,
)),
(r = md5_ff(
r,
(i = md5_ff(
i,
(m = md5_ff(
m,
f,
r,
i,
d[n + 8],
7,
1770035416,
)),
f,
r,
d[n + 9],
12,
-1958414417,
)),
m,
f,
d[n + 10],
17,
-42063,
)),
i,
m,
d[n + 11],
22,
-1990404162,
)),
(r = md5_ff(
r,
(i = md5_ff(
i,
(m = md5_ff(
m,
f,
r,
i,
d[n + 12],
7,
1804603682,
)),
f,
r,
d[n + 13],
12,
-40341101,
)),
m,
f,
d[n + 14],
17,
-1502002290,
)),
i,
m,
d[n + 15],
22,
1236535329,
)),
(r = md5_gg(
r,
(i = md5_gg(
i,
(m = md5_gg(
m,
f,
r,
i,
d[n + 1],
5,
-165796510,
)),
f,
r,
d[n + 6],
9,
-1069501632,
)),
m,
f,
d[n + 11],
14,
643717713,
)),
i,
m,
d[n + 0],
20,
-373897302,
)),
(r = md5_gg(
r,
(i = md5_gg(
i,
(m = md5_gg(m, f, r, i, d[n + 5], 5, -701558691)),
f,
r,
d[n + 10],
9,
38016083,
)),
m,
f,
d[n + 15],
14,
-660478335,
)),
i,
m,
d[n + 4],
20,
-405537848,
)),
(r = md5_gg(
r,
(i = md5_gg(
i,
(m = md5_gg(m, f, r, i, d[n + 9], 5, 568446438)),
f,
r,
d[n + 14],
9,
-1019803690,
)),
m,
f,
d[n + 3],
14,
-187363961,
)),
i,
m,
d[n + 8],
20,
1163531501,
)),
(r = md5_gg(
r,
(i = md5_gg(
i,
(m = md5_gg(m, f, r, i, d[n + 13], 5, -1444681467)),
f,
r,
d[n + 2],
9,
-51403784,
)),
m,
f,
d[n + 7],
14,
1735328473,
)),
i,
m,
d[n + 12],
20,
-1926607734,
)),
(r = md5_hh(
r,
(i = md5_hh(
i,
(m = md5_hh(m, f, r, i, d[n + 5], 4, -378558)),
f,
r,
d[n + 8],
11,
-2022574463,
)),
m,
f,
d[n + 11],
16,
1839030562,
)),
i,
m,
d[n + 14],
23,
-35309556,
)),
(r = md5_hh(
r,
(i = md5_hh(
i,
(m = md5_hh(m, f, r, i, d[n + 1], 4, -1530992060)),
f,
r,
d[n + 4],
11,
1272893353,
)),
m,
f,
d[n + 7],
16,
-155497632,
)),
i,
m,
d[n + 10],
23,
-1094730640,
)),
(r = md5_hh(
r,
(i = md5_hh(
i,
(m = md5_hh(m, f, r, i, d[n + 13], 4, 681279174)),
f,
r,
d[n + 0],
11,
-358537222,
)),
m,
f,
d[n + 3],
16,
-722521979,
)),
i,
m,
d[n + 6],
23,
76029189,
)),
(r = md5_hh(
r,
(i = md5_hh(
i,
(m = md5_hh(m, f, r, i, d[n + 9], 4, -640364487)),
f,
r,
d[n + 12],
11,
-421815835,
)),
m,
f,
d[n + 15],
16,
530742520,
)),
i,
m,
d[n + 2],
23,
-995338651,
)),
(r = md5_ii(
r,
(i = md5_ii(
i,
(m = md5_ii(m, f, r, i, d[n + 0], 6, -198630844)),
f,
r,
d[n + 7],
10,
1126891415,
)),
m,
f,
d[n + 14],
15,
-1416354905,
)),
i,
m,
d[n + 5],
21,
-57434055,
)),
(r = md5_ii(
r,
(i = md5_ii(
i,
(m = md5_ii(m, f, r, i, d[n + 12], 6, 1700485571)),
f,
r,
d[n + 3],
10,
-1894986606,
)),
m,
f,
d[n + 10],
15,
-1051523,
)),
i,
m,
d[n + 1],
21,
-2054922799,
)),
(r = md5_ii(
r,
(i = md5_ii(
i,
(m = md5_ii(m, f, r, i, d[n + 8], 6, 1873313359)),
f,
r,
d[n + 15],
10,
-30611744,
)),
m,
f,
d[n + 6],
15,
-1560198380,
)),
i,
m,
d[n + 13],
21,
1309151649,
)),
(r = md5_ii(
r,
(i = md5_ii(
i,
(m = md5_ii(m, f, r, i, d[n + 4], 6, -145523070)),
f,
r,
d[n + 11],
10,
-1120210379,
)),
m,
f,
d[n + 2],
15,
718787259,
)),
i,
m,
d[n + 9],
21,
-343485551,
)),
(m = safe_add(m, h)),
(f = safe_add(f, t)),
(r = safe_add(r, g)),
(i = safe_add(i, e));
}
return Array(m, f, r, i);
}
function md5_cmn(d, _, m, f, r, i) {
return safe_add(bit_rol(safe_add(safe_add(_, d), safe_add(f, i)), r), m);
}
function md5_ff(d, _, m, f, r, i, n) {
return md5_cmn((_ & m) | (~_ & f), d, _, r, i, n);
}
function md5_gg(d, _, m, f, r, i, n) {
return md5_cmn((_ & f) | (m & ~f), d, _, r, i, n);
}
function md5_hh(d, _, m, f, r, i, n) {
return md5_cmn(_ ^ m ^ f, d, _, r, i, n);
}
function md5_ii(d, _, m, f, r, i, n) {
return md5_cmn(m ^ (_ | ~f), d, _, r, i, n);
}
function safe_add(d, _) {
const m = (65535 & d) + (65535 & _);
return (((d >> 16) + (_ >> 16) + (m >> 16)) << 16) | (65535 & m);
}
function bit_rol(d, _) {
return (d << _) | (d >>> (32 - _));
}
export default MD5;