Skip to content
This repository was archived by the owner on Sep 25, 2021. It is now read-only.

Commit 04e56d9

Browse files
authored
Merge pull request #1 from blueimp/master
update from origin
2 parents d92d988 + 5b8b217 commit 04e56d9

File tree

14 files changed

+14061
-6125
lines changed

14 files changed

+14061
-6125
lines changed

.npmignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*
2+
!js/*.js
3+
!js/*.js.map

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ var hash = md5("value"); // "2063c1608d6e0baf80249c42e2be5804"
7575
```
7676

7777
Calculate the ([hex](https://en.wikipedia.org/wiki/Hexadecimal)-encoded)
78-
[HMAC](https://en.wikipedia.org/wiki/HMAC)-MD5 hash of a given string value and key:
78+
[HMAC](https://en.wikipedia.org/wiki/HMAC)-MD5 hash of a given string value and
79+
key:
7980

8081
```js
8182
var hash = md5("value", "key"); // "01433efd5f16327ea4b31144572c67f6"

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ <h2>Result</h2>
4444
<br>
4545
</form>
4646
<script src="js/md5.js"></script>
47-
<script src="js/demo.js"></script>
47+
<script src="js/demo/demo.js"></script>
4848
</body>
4949
</html>

js/demo.js renamed to js/demo/demo.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* http://www.opensource.org/licenses/MIT
1010
*/
1111

12-
/*global document, md5 */
12+
/* global md5 */
1313

1414
;(function () {
1515
'use strict'

js/md5.js

Lines changed: 108 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* See http://pajhome.org.uk/crypt/md5 for more info.
1818
*/
1919

20-
/*global unescape, define, module */
20+
/* global define */
2121

2222
;(function ($) {
2323
'use strict'
@@ -26,7 +26,7 @@
2626
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
2727
* to work around bugs in some JS interpreters.
2828
*/
29-
function safe_add (x, y) {
29+
function safeAdd (x, y) {
3030
var lsw = (x & 0xFFFF) + (y & 0xFFFF)
3131
var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
3232
return (msw << 16) | (lsw & 0xFFFF)
@@ -35,33 +35,33 @@
3535
/*
3636
* Bitwise rotate a 32-bit number to the left.
3737
*/
38-
function bit_rol (num, cnt) {
38+
function bitRotateLeft (num, cnt) {
3939
return (num << cnt) | (num >>> (32 - cnt))
4040
}
4141

4242
/*
4343
* These functions implement the four basic operations the algorithm uses.
4444
*/
45-
function md5_cmn (q, a, b, x, s, t) {
46-
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
45+
function md5cmn (q, a, b, x, s, t) {
46+
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
4747
}
48-
function md5_ff (a, b, c, d, x, s, t) {
49-
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
48+
function md5ff (a, b, c, d, x, s, t) {
49+
return md5cmn((b & c) | ((~b) & d), a, b, x, s, t)
5050
}
51-
function md5_gg (a, b, c, d, x, s, t) {
52-
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
51+
function md5gg (a, b, c, d, x, s, t) {
52+
return md5cmn((b & d) | (c & (~d)), a, b, x, s, t)
5353
}
54-
function md5_hh (a, b, c, d, x, s, t) {
55-
return md5_cmn(b ^ c ^ d, a, b, x, s, t)
54+
function md5hh (a, b, c, d, x, s, t) {
55+
return md5cmn(b ^ c ^ d, a, b, x, s, t)
5656
}
57-
function md5_ii (a, b, c, d, x, s, t) {
58-
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
57+
function md5ii (a, b, c, d, x, s, t) {
58+
return md5cmn(c ^ (b | (~d)), a, b, x, s, t)
5959
}
6060

6161
/*
6262
* Calculate the MD5 of an array of little-endian words, and a bit length.
6363
*/
64-
function binl_md5 (x, len) {
64+
function binlMD5 (x, len) {
6565
/* append padding */
6666
x[len >> 5] |= 0x80 << (len % 32)
6767
x[(((len + 64) >>> 9) << 4) + 14] = len
@@ -82,78 +82,78 @@
8282
oldc = c
8383
oldd = d
8484

85-
a = md5_ff(a, b, c, d, x[i], 7, -680876936)
86-
d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586)
87-
c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819)
88-
b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330)
89-
a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897)
90-
d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426)
91-
c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341)
92-
b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983)
93-
a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416)
94-
d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417)
95-
c = md5_ff(c, d, a, b, x[i + 10], 17, -42063)
96-
b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162)
97-
a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682)
98-
d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101)
99-
c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290)
100-
b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329)
85+
a = md5ff(a, b, c, d, x[i], 7, -680876936)
86+
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
87+
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
88+
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
89+
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)
90+
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)
91+
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)
92+
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)
93+
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)
94+
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)
95+
c = md5ff(c, d, a, b, x[i + 10], 17, -42063)
96+
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)
97+
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)
98+
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)
99+
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)
100+
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)
101101

102-
a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510)
103-
d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632)
104-
c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713)
105-
b = md5_gg(b, c, d, a, x[i], 20, -373897302)
106-
a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691)
107-
d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083)
108-
c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335)
109-
b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848)
110-
a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438)
111-
d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690)
112-
c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961)
113-
b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501)
114-
a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467)
115-
d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784)
116-
c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473)
117-
b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734)
102+
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)
103+
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)
104+
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)
105+
b = md5gg(b, c, d, a, x[i], 20, -373897302)
106+
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)
107+
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)
108+
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)
109+
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)
110+
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)
111+
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)
112+
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)
113+
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)
114+
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)
115+
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)
116+
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)
117+
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)
118118

119-
a = md5_hh(a, b, c, d, x[i + 5], 4, -378558)
120-
d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463)
121-
c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562)
122-
b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556)
123-
a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060)
124-
d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353)
125-
c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632)
126-
b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640)
127-
a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174)
128-
d = md5_hh(d, a, b, c, x[i], 11, -358537222)
129-
c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979)
130-
b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189)
131-
a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487)
132-
d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835)
133-
c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520)
134-
b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651)
119+
a = md5hh(a, b, c, d, x[i + 5], 4, -378558)
120+
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)
121+
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)
122+
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)
123+
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)
124+
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)
125+
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)
126+
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)
127+
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)
128+
d = md5hh(d, a, b, c, x[i], 11, -358537222)
129+
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)
130+
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)
131+
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)
132+
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)
133+
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)
134+
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)
135135

136-
a = md5_ii(a, b, c, d, x[i], 6, -198630844)
137-
d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415)
138-
c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905)
139-
b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055)
140-
a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571)
141-
d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606)
142-
c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523)
143-
b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799)
144-
a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359)
145-
d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744)
146-
c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380)
147-
b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649)
148-
a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070)
149-
d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379)
150-
c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259)
151-
b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551)
136+
a = md5ii(a, b, c, d, x[i], 6, -198630844)
137+
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)
138+
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)
139+
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)
140+
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)
141+
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)
142+
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)
143+
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)
144+
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)
145+
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)
146+
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)
147+
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)
148+
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)
149+
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)
150+
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)
151+
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)
152152

153-
a = safe_add(a, olda)
154-
b = safe_add(b, oldb)
155-
c = safe_add(c, oldc)
156-
d = safe_add(d, oldd)
153+
a = safeAdd(a, olda)
154+
b = safeAdd(b, oldb)
155+
c = safeAdd(c, oldc)
156+
d = safeAdd(d, oldd)
157157
}
158158
return [a, b, c, d]
159159
}
@@ -164,7 +164,8 @@
164164
function binl2rstr (input) {
165165
var i
166166
var output = ''
167-
for (i = 0; i < input.length * 32; i += 8) {
167+
var length32 = input.length * 32
168+
for (i = 0; i < length32; i += 8) {
168169
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF)
169170
}
170171
return output
@@ -181,7 +182,8 @@
181182
for (i = 0; i < output.length; i += 1) {
182183
output[i] = 0
183184
}
184-
for (i = 0; i < input.length * 8; i += 8) {
185+
var length8 = input.length * 8
186+
for (i = 0; i < length8; i += 8) {
185187
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32)
186188
}
187189
return output
@@ -190,81 +192,81 @@
190192
/*
191193
* Calculate the MD5 of a raw string
192194
*/
193-
function rstr_md5 (s) {
194-
return binl2rstr(binl_md5(rstr2binl(s), s.length * 8))
195+
function rstrMD5 (s) {
196+
return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
195197
}
196198

197199
/*
198200
* Calculate the HMAC-MD5, of a key and some data (raw strings)
199201
*/
200-
function rstr_hmac_md5 (key, data) {
202+
function rstrHMACMD5 (key, data) {
201203
var i
202204
var bkey = rstr2binl(key)
203205
var ipad = []
204206
var opad = []
205207
var hash
206208
ipad[15] = opad[15] = undefined
207209
if (bkey.length > 16) {
208-
bkey = binl_md5(bkey, key.length * 8)
210+
bkey = binlMD5(bkey, key.length * 8)
209211
}
210212
for (i = 0; i < 16; i += 1) {
211213
ipad[i] = bkey[i] ^ 0x36363636
212214
opad[i] = bkey[i] ^ 0x5C5C5C5C
213215
}
214-
hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
215-
return binl2rstr(binl_md5(opad.concat(hash), 512 + 128))
216+
hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
217+
return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))
216218
}
217219

218220
/*
219221
* Convert a raw string to a hex string
220222
*/
221223
function rstr2hex (input) {
222-
var hex_tab = '0123456789abcdef'
224+
var hexTab = '0123456789abcdef'
223225
var output = ''
224226
var x
225227
var i
226228
for (i = 0; i < input.length; i += 1) {
227229
x = input.charCodeAt(i)
228-
output += hex_tab.charAt((x >>> 4) & 0x0F) +
229-
hex_tab.charAt(x & 0x0F)
230+
output += hexTab.charAt((x >>> 4) & 0x0F) +
231+
hexTab.charAt(x & 0x0F)
230232
}
231233
return output
232234
}
233235

234236
/*
235237
* Encode a string as utf-8
236238
*/
237-
function str2rstr_utf8 (input) {
239+
function str2rstrUTF8 (input) {
238240
return unescape(encodeURIComponent(input))
239241
}
240242

241243
/*
242244
* Take string arguments and return either raw or hex encoded strings
243245
*/
244-
function raw_md5 (s) {
245-
return rstr_md5(str2rstr_utf8(s))
246+
function rawMD5 (s) {
247+
return rstrMD5(str2rstrUTF8(s))
246248
}
247-
function hex_md5 (s) {
248-
return rstr2hex(raw_md5(s))
249+
function hexMD5 (s) {
250+
return rstr2hex(rawMD5(s))
249251
}
250-
function raw_hmac_md5 (k, d) {
251-
return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d))
252+
function rawHMACMD5 (k, d) {
253+
return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
252254
}
253-
function hex_hmac_md5 (k, d) {
254-
return rstr2hex(raw_hmac_md5(k, d))
255+
function hexHMACMD5 (k, d) {
256+
return rstr2hex(rawHMACMD5(k, d))
255257
}
256258

257259
function md5 (string, key, raw) {
258260
if (!key) {
259261
if (!raw) {
260-
return hex_md5(string)
262+
return hexMD5(string)
261263
}
262-
return raw_md5(string)
264+
return rawMD5(string)
263265
}
264266
if (!raw) {
265-
return hex_hmac_md5(key, string)
267+
return hexHMACMD5(key, string)
266268
}
267-
return raw_hmac_md5(key, string)
269+
return rawHMACMD5(key, string)
268270
}
269271

270272
if (typeof define === 'function' && define.amd) {

0 commit comments

Comments
 (0)