|
45 | 45 | return add32((a << s) | (a >>> (32 - s)), b); |
46 | 46 | } |
47 | 47 |
|
48 | | - function ff(a, b, c, d, x, s, t) { |
49 | | - return cmn((b & c) | ((~b) & d), a, b, x, s, t); |
50 | | - } |
51 | | - |
52 | | - function gg(a, b, c, d, x, s, t) { |
53 | | - return cmn((b & d) | (c & (~d)), a, b, x, s, t); |
54 | | - } |
55 | | - |
56 | | - function hh(a, b, c, d, x, s, t) { |
57 | | - return cmn(b ^ c ^ d, a, b, x, s, t); |
58 | | - } |
59 | | - |
60 | | - function ii(a, b, c, d, x, s, t) { |
61 | | - return cmn(c ^ (b | (~d)), a, b, x, s, t); |
62 | | - } |
63 | | - |
64 | 48 | function md5cycle(x, k) { |
65 | 49 | var a = x[0], |
66 | 50 | b = x[1], |
67 | 51 | c = x[2], |
68 | 52 | d = x[3]; |
69 | 53 |
|
70 | | - a = ff(a, b, c, d, k[0], 7, -680876936); |
71 | | - d = ff(d, a, b, c, k[1], 12, -389564586); |
72 | | - c = ff(c, d, a, b, k[2], 17, 606105819); |
73 | | - b = ff(b, c, d, a, k[3], 22, -1044525330); |
74 | | - a = ff(a, b, c, d, k[4], 7, -176418897); |
75 | | - d = ff(d, a, b, c, k[5], 12, 1200080426); |
76 | | - c = ff(c, d, a, b, k[6], 17, -1473231341); |
77 | | - b = ff(b, c, d, a, k[7], 22, -45705983); |
78 | | - a = ff(a, b, c, d, k[8], 7, 1770035416); |
79 | | - d = ff(d, a, b, c, k[9], 12, -1958414417); |
80 | | - c = ff(c, d, a, b, k[10], 17, -42063); |
81 | | - b = ff(b, c, d, a, k[11], 22, -1990404162); |
82 | | - a = ff(a, b, c, d, k[12], 7, 1804603682); |
83 | | - d = ff(d, a, b, c, k[13], 12, -40341101); |
84 | | - c = ff(c, d, a, b, k[14], 17, -1502002290); |
85 | | - b = ff(b, c, d, a, k[15], 22, 1236535329); |
86 | | - |
87 | | - a = gg(a, b, c, d, k[1], 5, -165796510); |
88 | | - d = gg(d, a, b, c, k[6], 9, -1069501632); |
89 | | - c = gg(c, d, a, b, k[11], 14, 643717713); |
90 | | - b = gg(b, c, d, a, k[0], 20, -373897302); |
91 | | - a = gg(a, b, c, d, k[5], 5, -701558691); |
92 | | - d = gg(d, a, b, c, k[10], 9, 38016083); |
93 | | - c = gg(c, d, a, b, k[15], 14, -660478335); |
94 | | - b = gg(b, c, d, a, k[4], 20, -405537848); |
95 | | - a = gg(a, b, c, d, k[9], 5, 568446438); |
96 | | - d = gg(d, a, b, c, k[14], 9, -1019803690); |
97 | | - c = gg(c, d, a, b, k[3], 14, -187363961); |
98 | | - b = gg(b, c, d, a, k[8], 20, 1163531501); |
99 | | - a = gg(a, b, c, d, k[13], 5, -1444681467); |
100 | | - d = gg(d, a, b, c, k[2], 9, -51403784); |
101 | | - c = gg(c, d, a, b, k[7], 14, 1735328473); |
102 | | - b = gg(b, c, d, a, k[12], 20, -1926607734); |
103 | | - |
104 | | - a = hh(a, b, c, d, k[5], 4, -378558); |
105 | | - d = hh(d, a, b, c, k[8], 11, -2022574463); |
106 | | - c = hh(c, d, a, b, k[11], 16, 1839030562); |
107 | | - b = hh(b, c, d, a, k[14], 23, -35309556); |
108 | | - a = hh(a, b, c, d, k[1], 4, -1530992060); |
109 | | - d = hh(d, a, b, c, k[4], 11, 1272893353); |
110 | | - c = hh(c, d, a, b, k[7], 16, -155497632); |
111 | | - b = hh(b, c, d, a, k[10], 23, -1094730640); |
112 | | - a = hh(a, b, c, d, k[13], 4, 681279174); |
113 | | - d = hh(d, a, b, c, k[0], 11, -358537222); |
114 | | - c = hh(c, d, a, b, k[3], 16, -722521979); |
115 | | - b = hh(b, c, d, a, k[6], 23, 76029189); |
116 | | - a = hh(a, b, c, d, k[9], 4, -640364487); |
117 | | - d = hh(d, a, b, c, k[12], 11, -421815835); |
118 | | - c = hh(c, d, a, b, k[15], 16, 530742520); |
119 | | - b = hh(b, c, d, a, k[2], 23, -995338651); |
120 | | - |
121 | | - a = ii(a, b, c, d, k[0], 6, -198630844); |
122 | | - d = ii(d, a, b, c, k[7], 10, 1126891415); |
123 | | - c = ii(c, d, a, b, k[14], 15, -1416354905); |
124 | | - b = ii(b, c, d, a, k[5], 21, -57434055); |
125 | | - a = ii(a, b, c, d, k[12], 6, 1700485571); |
126 | | - d = ii(d, a, b, c, k[3], 10, -1894986606); |
127 | | - c = ii(c, d, a, b, k[10], 15, -1051523); |
128 | | - b = ii(b, c, d, a, k[1], 21, -2054922799); |
129 | | - a = ii(a, b, c, d, k[8], 6, 1873313359); |
130 | | - d = ii(d, a, b, c, k[15], 10, -30611744); |
131 | | - c = ii(c, d, a, b, k[6], 15, -1560198380); |
132 | | - b = ii(b, c, d, a, k[13], 21, 1309151649); |
133 | | - a = ii(a, b, c, d, k[4], 6, -145523070); |
134 | | - d = ii(d, a, b, c, k[11], 10, -1120210379); |
135 | | - c = ii(c, d, a, b, k[2], 15, 718787259); |
136 | | - b = ii(b, c, d, a, k[9], 21, -343485551); |
137 | | - |
138 | | - x[0] = add32(a, x[0]); |
139 | | - x[1] = add32(b, x[1]); |
140 | | - x[2] = add32(c, x[2]); |
141 | | - x[3] = add32(d, x[3]); |
| 54 | + a += (b & c | ~b & d) + k[0] - 680876936 | 0; |
| 55 | + a = (a << 7 | a >>> 25) + b | 0; |
| 56 | + d += (a & b | ~a & c) + k[1] - 389564586 | 0; |
| 57 | + d = (d << 12 | d >>> 20) + a | 0; |
| 58 | + c += (d & a | ~d & b) + k[2] + 606105819 | 0; |
| 59 | + c = (c << 17 | c >>> 15) + d | 0; |
| 60 | + b += (c & d | ~c & a) + k[3] - 1044525330 | 0; |
| 61 | + b = (b << 22 | b >>> 10) + c | 0; |
| 62 | + a += (b & c | ~b & d) + k[4] - 176418897 | 0; |
| 63 | + a = (a << 7 | a >>> 25) + b | 0; |
| 64 | + d += (a & b | ~a & c) + k[5] + 1200080426 | 0; |
| 65 | + d = (d << 12 | d >>> 20) + a | 0; |
| 66 | + c += (d & a | ~d & b) + k[6] - 1473231341 | 0; |
| 67 | + c = (c << 17 | c >>> 15) + d | 0; |
| 68 | + b += (c & d | ~c & a) + k[7] - 45705983 | 0; |
| 69 | + b = (b << 22 | b >>> 10) + c | 0; |
| 70 | + a += (b & c | ~b & d) + k[8] + 1770035416 | 0; |
| 71 | + a = (a << 7 | a >>> 25) + b | 0; |
| 72 | + d += (a & b | ~a & c) + k[9] - 1958414417 | 0; |
| 73 | + d = (d << 12 | d >>> 20) + a | 0; |
| 74 | + c += (d & a | ~d & b) + k[10] - 42063 | 0; |
| 75 | + c = (c << 17 | c >>> 15) + d | 0; |
| 76 | + b += (c & d | ~c & a) + k[11] - 1990404162 | 0; |
| 77 | + b = (b << 22 | b >>> 10) + c | 0; |
| 78 | + a += (b & c | ~b & d) + k[12] + 1804603682 | 0; |
| 79 | + a = (a << 7 | a >>> 25) + b | 0; |
| 80 | + d += (a & b | ~a & c) + k[13] - 40341101 | 0; |
| 81 | + d = (d << 12 | d >>> 20) + a | 0; |
| 82 | + c += (d & a | ~d & b) + k[14] - 1502002290 | 0; |
| 83 | + c = (c << 17 | c >>> 15) + d | 0; |
| 84 | + b += (c & d | ~c & a) + k[15] + 1236535329 | 0; |
| 85 | + b = (b << 22 | b >>> 10) + c | 0; |
| 86 | + |
| 87 | + a += (b & d | c & ~d) + k[1] - 165796510 | 0; |
| 88 | + a = (a << 5 | a >>> 27) + b | 0; |
| 89 | + d += (a & c | b & ~c) + k[6] - 1069501632 | 0; |
| 90 | + d = (d << 9 | d >>> 23) + a | 0; |
| 91 | + c += (d & b | a & ~b) + k[11] + 643717713 | 0; |
| 92 | + c = (c << 14 | c >>> 18) + d | 0; |
| 93 | + b += (c & a | d & ~a) + k[0] - 373897302 | 0; |
| 94 | + b = (b << 20 | b >>> 12) + c | 0; |
| 95 | + a += (b & d | c & ~d) + k[5] - 701558691 | 0; |
| 96 | + a = (a << 5 | a >>> 27) + b | 0; |
| 97 | + d += (a & c | b & ~c) + k[10] + 38016083 | 0; |
| 98 | + d = (d << 9 | d >>> 23) + a | 0; |
| 99 | + c += (d & b | a & ~b) + k[15] - 660478335 | 0; |
| 100 | + c = (c << 14 | c >>> 18) + d | 0; |
| 101 | + b += (c & a | d & ~a) + k[4] - 405537848 | 0; |
| 102 | + b = (b << 20 | b >>> 12) + c | 0; |
| 103 | + a += (b & d | c & ~d) + k[9] + 568446438 | 0; |
| 104 | + a = (a << 5 | a >>> 27) + b | 0; |
| 105 | + d += (a & c | b & ~c) + k[14] - 1019803690 | 0; |
| 106 | + d = (d << 9 | d >>> 23) + a | 0; |
| 107 | + c += (d & b | a & ~b) + k[3] - 187363961 | 0; |
| 108 | + c = (c << 14 | c >>> 18) + d | 0; |
| 109 | + b += (c & a | d & ~a) + k[8] + 1163531501 | 0; |
| 110 | + b = (b << 20 | b >>> 12) + c | 0; |
| 111 | + a += (b & d | c & ~d) + k[13] - 1444681467 | 0; |
| 112 | + a = (a << 5 | a >>> 27) + b | 0; |
| 113 | + d += (a & c | b & ~c) + k[2] - 51403784 | 0; |
| 114 | + d = (d << 9 | d >>> 23) + a | 0; |
| 115 | + c += (d & b | a & ~b) + k[7] + 1735328473 | 0; |
| 116 | + c = (c << 14 | c >>> 18) + d | 0; |
| 117 | + b += (c & a | d & ~a) + k[12] - 1926607734 | 0; |
| 118 | + b = (b << 20 | b >>> 12) + c | 0; |
| 119 | + |
| 120 | + a += (b ^ c ^ d) + k[5] - 378558 | 0; |
| 121 | + a = (a << 4 | a >>> 28) + b | 0; |
| 122 | + d += (a ^ b ^ c) + k[8] - 2022574463 | 0; |
| 123 | + d = (d << 11 | d >>> 21) + a | 0; |
| 124 | + c += (d ^ a ^ b) + k[11] + 1839030562 | 0; |
| 125 | + c = (c << 16 | c >>> 16) + d | 0; |
| 126 | + b += (c ^ d ^ a) + k[14] - 35309556 | 0; |
| 127 | + b = (b << 23 | b >>> 9) + c | 0; |
| 128 | + a += (b ^ c ^ d) + k[1] - 1530992060 | 0; |
| 129 | + a = (a << 4 | a >>> 28) + b | 0; |
| 130 | + d += (a ^ b ^ c) + k[4] + 1272893353 | 0; |
| 131 | + d = (d << 11 | d >>> 21) + a | 0; |
| 132 | + c += (d ^ a ^ b) + k[7] - 155497632 | 0; |
| 133 | + c = (c << 16 | c >>> 16) + d | 0; |
| 134 | + b += (c ^ d ^ a) + k[10] - 1094730640 | 0; |
| 135 | + b = (b << 23 | b >>> 9) + c | 0; |
| 136 | + a += (b ^ c ^ d) + k[13] + 681279174 | 0; |
| 137 | + a = (a << 4 | a >>> 28) + b | 0; |
| 138 | + d += (a ^ b ^ c) + k[0] - 358537222 | 0; |
| 139 | + d = (d << 11 | d >>> 21) + a | 0; |
| 140 | + c += (d ^ a ^ b) + k[3] - 722521979 | 0; |
| 141 | + c = (c << 16 | c >>> 16) + d | 0; |
| 142 | + b += (c ^ d ^ a) + k[6] + 76029189 | 0; |
| 143 | + b = (b << 23 | b >>> 9) + c | 0; |
| 144 | + a += (b ^ c ^ d) + k[9] - 640364487 | 0; |
| 145 | + a = (a << 4 | a >>> 28) + b | 0; |
| 146 | + d += (a ^ b ^ c) + k[12] - 421815835 | 0; |
| 147 | + d = (d << 11 | d >>> 21) + a | 0; |
| 148 | + c += (d ^ a ^ b) + k[15] + 530742520 | 0; |
| 149 | + c = (c << 16 | c >>> 16) + d | 0; |
| 150 | + b += (c ^ d ^ a) + k[2] - 995338651 | 0; |
| 151 | + b = (b << 23 | b >>> 9) + c | 0; |
| 152 | + |
| 153 | + a += (c ^ (b | ~d)) + k[0] - 198630844 | 0; |
| 154 | + a = (a << 6 | a >>> 26) + b | 0; |
| 155 | + d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0; |
| 156 | + d = (d << 10 | d >>> 22) + a | 0; |
| 157 | + c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0; |
| 158 | + c = (c << 15 | c >>> 17) + d | 0; |
| 159 | + b += (d ^ (c | ~a)) + k[5] - 57434055 | 0; |
| 160 | + b = (b << 21 |b >>> 11) + c | 0; |
| 161 | + a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0; |
| 162 | + a = (a << 6 | a >>> 26) + b | 0; |
| 163 | + d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0; |
| 164 | + d = (d << 10 | d >>> 22) + a | 0; |
| 165 | + c += (a ^ (d | ~b)) + k[10] - 1051523 | 0; |
| 166 | + c = (c << 15 | c >>> 17) + d | 0; |
| 167 | + b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0; |
| 168 | + b = (b << 21 |b >>> 11) + c | 0; |
| 169 | + a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0; |
| 170 | + a = (a << 6 | a >>> 26) + b | 0; |
| 171 | + d += (b ^ (a | ~c)) + k[15] - 30611744 | 0; |
| 172 | + d = (d << 10 | d >>> 22) + a | 0; |
| 173 | + c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0; |
| 174 | + c = (c << 15 | c >>> 17) + d | 0; |
| 175 | + b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0; |
| 176 | + b = (b << 21 |b >>> 11) + c | 0; |
| 177 | + a += (c ^ (b | ~d)) + k[4] - 145523070 | 0; |
| 178 | + a = (a << 6 | a >>> 26) + b | 0; |
| 179 | + d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0; |
| 180 | + d = (d << 10 | d >>> 22) + a | 0; |
| 181 | + c += (a ^ (d | ~b)) + k[2] + 718787259 | 0; |
| 182 | + c = (c << 15 | c >>> 17) + d | 0; |
| 183 | + b += (d ^ (c | ~a)) + k[9] - 343485551 | 0; |
| 184 | + b = (b << 21 | b >>> 11) + c | 0; |
| 185 | + |
| 186 | + x[0] = a + x[0] | 0; |
| 187 | + x[1] = b + x[1] | 0; |
| 188 | + x[2] = c + x[2] | 0; |
| 189 | + x[3] = d + x[3] | 0; |
142 | 190 | } |
143 | 191 |
|
144 | 192 | function md5blk(s) { |
|
0 commit comments