| 1 | // https://www.myersdaily.org/joseph/javascript/md5-text.html |
| 2 | |
| 3 | function md5cycle(x, k) { |
| 4 | var a = x[0], |
| 5 | b = x[1], |
| 6 | c = x[2], |
| 7 | d = x[3]; |
| 8 | |
| 9 | a = ff(a, b, c, d, k[0], 7, -680876936); |
| 10 | d = ff(d, a, b, c, k[1], 12, -389564586); |
| 11 | c = ff(c, d, a, b, k[2], 17, 606105819); |
| 12 | b = ff(b, c, d, a, k[3], 22, -1044525330); |
| 13 | a = ff(a, b, c, d, k[4], 7, -176418897); |
| 14 | d = ff(d, a, b, c, k[5], 12, 1200080426); |
| 15 | c = ff(c, d, a, b, k[6], 17, -1473231341); |
| 16 | b = ff(b, c, d, a, k[7], 22, -45705983); |
| 17 | a = ff(a, b, c, d, k[8], 7, 1770035416); |
| 18 | d = ff(d, a, b, c, k[9], 12, -1958414417); |
| 19 | c = ff(c, d, a, b, k[10], 17, -42063); |
| 20 | b = ff(b, c, d, a, k[11], 22, -1990404162); |
| 21 | a = ff(a, b, c, d, k[12], 7, 1804603682); |
| 22 | d = ff(d, a, b, c, k[13], 12, -40341101); |
| 23 | c = ff(c, d, a, b, k[14], 17, -1502002290); |
| 24 | b = ff(b, c, d, a, k[15], 22, 1236535329); |
| 25 | |
| 26 | a = gg(a, b, c, d, k[1], 5, -165796510); |
| 27 | d = gg(d, a, b, c, k[6], 9, -1069501632); |
| 28 | c = gg(c, d, a, b, k[11], 14, 643717713); |
| 29 | b = gg(b, c, d, a, k[0], 20, -373897302); |
| 30 | a = gg(a, b, c, d, k[5], 5, -701558691); |
| 31 | d = gg(d, a, b, c, k[10], 9, 38016083); |
| 32 | c = gg(c, d, a, b, k[15], 14, -660478335); |
| 33 | b = gg(b, c, d, a, k[4], 20, -405537848); |
| 34 | a = gg(a, b, c, d, k[9], 5, 568446438); |
| 35 | d = gg(d, a, b, c, k[14], 9, -1019803690); |
| 36 | c = gg(c, d, a, b, k[3], 14, -187363961); |
| 37 | b = gg(b, c, d, a, k[8], 20, 1163531501); |
| 38 | a = gg(a, b, c, d, k[13], 5, -1444681467); |
| 39 | d = gg(d, a, b, c, k[2], 9, -51403784); |
| 40 | c = gg(c, d, a, b, k[7], 14, 1735328473); |
| 41 | b = gg(b, c, d, a, k[12], 20, -1926607734); |
| 42 | |
| 43 | a = hh(a, b, c, d, k[5], 4, -378558); |
| 44 | d = hh(d, a, b, c, k[8], 11, -2022574463); |
| 45 | c = hh(c, d, a, b, k[11], 16, 1839030562); |
| 46 | b = hh(b, c, d, a, k[14], 23, -35309556); |
| 47 | a = hh(a, b, c, d, k[1], 4, -1530992060); |
| 48 | d = hh(d, a, b, c, k[4], 11, 1272893353); |
| 49 | c = hh(c, d, a, b, k[7], 16, -155497632); |
| 50 | b = hh(b, c, d, a, k[10], 23, -1094730640); |
| 51 | a = hh(a, b, c, d, k[13], 4, 681279174); |
| 52 | d = hh(d, a, b, c, k[0], 11, -358537222); |
| 53 | c = hh(c, d, a, b, k[3], 16, -722521979); |
| 54 | b = hh(b, c, d, a, k[6], 23, 76029189); |
| 55 | a = hh(a, b, c, d, k[9], 4, -640364487); |
| 56 | d = hh(d, a, b, c, k[12], 11, -421815835); |
| 57 | c = hh(c, d, a, b, k[15], 16, 530742520); |
| 58 | b = hh(b, c, d, a, k[2], 23, -995338651); |
| 59 | |
| 60 | a = ii(a, b, c, d, k[0], 6, -198630844); |