Skip to content

Instantly share code, notes, and snippets.

@hldh214
Last active August 1, 2017 19:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hldh214/e5d5d8eda6cde9c1d800218cb805940a to your computer and use it in GitHub Desktop.
Save hldh214/e5d5d8eda6cde9c1d800218cb805940a to your computer and use it in GitHub Desktop.
md5 algo with ~~JavaScript~~
var lZ1x = 8;
var VF2x = function(fw9n, cu7n) {
return fw9n << cu7n | fw9n >>> 32 - cu7n
};
var lj1x = function(x, y) {
var bAi2x = (x & 65535) + (y & 65535)
, cnf2x = (x >> 16) + (y >> 16) + (bAi2x >> 16);
return cnf2x << 16 | bAi2x & 65535
};
var Vw2x = function(q, a, b, x, s, t) {
return lj1x(VF2x(lj1x(lj1x(a, q), lj1x(x, t)), s), b)
};
var oa2x = function(a, b, c, d, x, s, t) {
return Vw2x(b & c | ~b & d, a, b, x, s, t)
};
var nY2x = function(a, b, c, d, x, s, t) {
return Vw2x(b & d | c & ~d, a, b, x, s, t)
};
var nW2x = function(a, b, c, d, x, s, t) {
return Vw2x(c ^ (b | ~d), a, b, x, s, t)
};
var nX2x = function(a, b, c, d, x, s, t) {
return Vw2x(b ^ c ^ d, a, b, x, s, t)
};
var sm3x = function() {
var Cw6q = function(i) {
return i % 32
}
, Cx6r = function(i) {
return 32 - lZ1x - i % 32
};
return function(cL8D, Cy6s) {
var Qj0x = []
, kj0x = (1 << lZ1x) - 1
, mr1x = Cy6s ? Cw6q : Cx6r;
for (var i = 0, l = cL8D.length * lZ1x; i < l; i += lZ1x)
Qj0x[i >> 5] |= (cL8D.charCodeAt(i / lZ1x) & kj0x) << mr1x(i);
return Qj0x
}
}();
var EI7B = function(x, y) {
x[y >> 5] |= 128 << y % 32;
x[(y + 64 >>> 9 << 4) + 14] = y;
var a = 1732584193
, b = -271733879
, c = -1732584194
, d = 271733878;
for (var i = 0, l = x.length, bAc2x, bAb2x, bzZ2x, bzY2x; i < l; i += 16) {
bAc2x = a;
bAb2x = b;
bzZ2x = c;
bzY2x = d;
a = oa2x(a, b, c, d, x[i + 0], 7, -680876936);
d = oa2x(d, a, b, c, x[i + 1], 12, -389564586);
c = oa2x(c, d, a, b, x[i + 2], 17, 606105819);
b = oa2x(b, c, d, a, x[i + 3], 22, -1044525330);
a = oa2x(a, b, c, d, x[i + 4], 7, -176418897);
d = oa2x(d, a, b, c, x[i + 5], 12, 1200080426);
c = oa2x(c, d, a, b, x[i + 6], 17, -1473231341);
b = oa2x(b, c, d, a, x[i + 7], 22, -45705983);
a = oa2x(a, b, c, d, x[i + 8], 7, 1770035416);
d = oa2x(d, a, b, c, x[i + 9], 12, -1958414417);
c = oa2x(c, d, a, b, x[i + 10], 17, -42063);
b = oa2x(b, c, d, a, x[i + 11], 22, -1990404162);
a = oa2x(a, b, c, d, x[i + 12], 7, 1804603682);
d = oa2x(d, a, b, c, x[i + 13], 12, -40341101);
c = oa2x(c, d, a, b, x[i + 14], 17, -1502002290);
b = oa2x(b, c, d, a, x[i + 15], 22, 1236535329);
a = nY2x(a, b, c, d, x[i + 1], 5, -165796510);
d = nY2x(d, a, b, c, x[i + 6], 9, -1069501632);
c = nY2x(c, d, a, b, x[i + 11], 14, 643717713);
b = nY2x(b, c, d, a, x[i + 0], 20, -373897302);
a = nY2x(a, b, c, d, x[i + 5], 5, -701558691);
d = nY2x(d, a, b, c, x[i + 10], 9, 38016083);
c = nY2x(c, d, a, b, x[i + 15], 14, -660478335);
b = nY2x(b, c, d, a, x[i + 4], 20, -405537848);
a = nY2x(a, b, c, d, x[i + 9], 5, 568446438);
d = nY2x(d, a, b, c, x[i + 14], 9, -1019803690);
c = nY2x(c, d, a, b, x[i + 3], 14, -187363961);
b = nY2x(b, c, d, a, x[i + 8], 20, 1163531501);
a = nY2x(a, b, c, d, x[i + 13], 5, -1444681467);
d = nY2x(d, a, b, c, x[i + 2], 9, -51403784);
c = nY2x(c, d, a, b, x[i + 7], 14, 1735328473);
b = nY2x(b, c, d, a, x[i + 12], 20, -1926607734);
a = nX2x(a, b, c, d, x[i + 5], 4, -378558);
d = nX2x(d, a, b, c, x[i + 8], 11, -2022574463);
c = nX2x(c, d, a, b, x[i + 11], 16, 1839030562);
b = nX2x(b, c, d, a, x[i + 14], 23, -35309556);
a = nX2x(a, b, c, d, x[i + 1], 4, -1530992060);
d = nX2x(d, a, b, c, x[i + 4], 11, 1272893353);
c = nX2x(c, d, a, b, x[i + 7], 16, -155497632);
b = nX2x(b, c, d, a, x[i + 10], 23, -1094730640);
a = nX2x(a, b, c, d, x[i + 13], 4, 681279174);
d = nX2x(d, a, b, c, x[i + 0], 11, -358537222);
c = nX2x(c, d, a, b, x[i + 3], 16, -722521979);
b = nX2x(b, c, d, a, x[i + 6], 23, 76029189);
a = nX2x(a, b, c, d, x[i + 9], 4, -640364487);
d = nX2x(d, a, b, c, x[i + 12], 11, -421815835);
c = nX2x(c, d, a, b, x[i + 15], 16, 530742520);
b = nX2x(b, c, d, a, x[i + 2], 23, -995338651);
a = nW2x(a, b, c, d, x[i + 0], 6, -198630844);
d = nW2x(d, a, b, c, x[i + 7], 10, 1126891415);
c = nW2x(c, d, a, b, x[i + 14], 15, -1416354905);
b = nW2x(b, c, d, a, x[i + 5], 21, -57434055);
a = nW2x(a, b, c, d, x[i + 12], 6, 1700485571);
d = nW2x(d, a, b, c, x[i + 3], 10, -1894986606);
c = nW2x(c, d, a, b, x[i + 10], 15, -1051523);
b = nW2x(b, c, d, a, x[i + 1], 21, -2054922799);
a = nW2x(a, b, c, d, x[i + 8], 6, 1873313359);
d = nW2x(d, a, b, c, x[i + 15], 10, -30611744);
c = nW2x(c, d, a, b, x[i + 6], 15, -1560198380);
b = nW2x(b, c, d, a, x[i + 13], 21, 1309151649);
a = nW2x(a, b, c, d, x[i + 4], 6, -145523070);
d = nW2x(d, a, b, c, x[i + 11], 10, -1120210379);
c = nW2x(c, d, a, b, x[i + 2], 15, 718787259);
b = nW2x(b, c, d, a, x[i + 9], 21, -343485551);
a = lj1x(a, bAc2x);
b = lj1x(b, bAb2x);
c = lj1x(c, bzZ2x);
d = lj1x(d, bzY2x)
}
return [a, b, c, d]
};
var Ql0x = function() {
var bAh2x = "0123456789abcdef"
, Cw6q = function(i) {
return i % 4
}
, Cx6r = function(i) {
return 3 - i % 4
};
return function(iG0x, Cy6s) {
var bs7l = []
, mr1x = Cy6s ? Cw6q : Cx6r;
for (var i = 0, l = iG0x.length * 4; i < l; i++) {
bs7l.push(bAh2x.charAt(iG0x[i >> 2] >> mr1x(i) * 8 + 4 & 15) + bAh2x.charAt(iG0x[i >> 2] >> mr1x(i) * 8 & 15))
}
return bs7l.join("")
}
}();
var kS1x = function(j7c) {
return Ql0x(EI7B(sm3x(j7c, !0), j7c.length * lZ1x), !0)
}
console.log(kS1x('password'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment