js-md5 0.8.3 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,589 @@
1
+ function getDefaultExportFromCjs (x) {
2
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
3
+ }
4
+
5
+ var md5$1 = {exports: {}};
6
+
7
+ /**
8
+ * [js-md5]{@link https://github.com/emn178/js-md5}
9
+ *
10
+ * @namespace md5
11
+ * @version 0.9.2
12
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
13
+ * @copyright Chen, Yi-Cyuan 2014-2026
14
+ * @license MIT
15
+ */
16
+
17
+ (function (module) {
18
+ (function () {
19
+
20
+ var INPUT_ERROR = 'input is invalid type';
21
+ var FINALIZE_ERROR = 'finalize already called';
22
+ var WINDOW = typeof window === 'object';
23
+ var root = WINDOW ? window : {};
24
+ if (root.JS_MD5_NO_WINDOW) {
25
+ WINDOW = false;
26
+ }
27
+ var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
28
+ if (WEB_WORKER) {
29
+ root = self;
30
+ }
31
+ var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && 'object' === 'object' && module.exports;
32
+ var HEX_CHARS = '0123456789abcdef'.split('');
33
+ var EXTRA = [128, 32768, 8388608, -2147483648];
34
+ var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];
35
+
36
+ var blocks = [], buffer8;
37
+ {
38
+ var buffer = new ArrayBuffer(68);
39
+ buffer8 = new Uint8Array(buffer);
40
+ blocks = new Uint32Array(buffer);
41
+ }
42
+
43
+ var isArray = Array.isArray;
44
+
45
+ var isView = ArrayBuffer.isView;
46
+
47
+ // [message: string, isString: bool]
48
+ var formatMessage = function (message) {
49
+ var type = typeof message;
50
+ if (type === 'string') {
51
+ return [message, true];
52
+ }
53
+ if (type !== 'object' || message === null) {
54
+ throw new Error(INPUT_ERROR);
55
+ }
56
+ if (message.constructor === ArrayBuffer) {
57
+ return [new Uint8Array(message), false];
58
+ }
59
+ if (!isArray(message) && !isView(message)) {
60
+ throw new Error(INPUT_ERROR);
61
+ }
62
+ return [message, false];
63
+ };
64
+
65
+ /**
66
+ * @method hex
67
+ * @memberof md5
68
+ * @description Output hash as hex string
69
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
70
+ * @returns {String} Hex string
71
+ * @example
72
+ * md5.hex('The quick brown fox jumps over the lazy dog');
73
+ * // equal to
74
+ * md5('The quick brown fox jumps over the lazy dog');
75
+ */
76
+ /**
77
+ * @method digest
78
+ * @memberof md5
79
+ * @description Output hash as bytes array
80
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
81
+ * @returns {Array} Bytes array
82
+ * @example
83
+ * md5.digest('The quick brown fox jumps over the lazy dog');
84
+ */
85
+ /**
86
+ * @method array
87
+ * @memberof md5
88
+ * @description Output hash as bytes array
89
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
90
+ * @returns {Array} Bytes array
91
+ * @example
92
+ * md5.array('The quick brown fox jumps over the lazy dog');
93
+ */
94
+ /**
95
+ * @method arrayBuffer
96
+ * @memberof md5
97
+ * @description Output hash as ArrayBuffer
98
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
99
+ * @returns {ArrayBuffer} ArrayBuffer
100
+ * @example
101
+ * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');
102
+ */
103
+ /**
104
+ * @method buffer
105
+ * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
106
+ * @memberof md5
107
+ * @description Output hash as ArrayBuffer
108
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
109
+ * @returns {ArrayBuffer} ArrayBuffer
110
+ * @example
111
+ * md5.buffer('The quick brown fox jumps over the lazy dog');
112
+ */
113
+ /**
114
+ * @method base64
115
+ * @memberof md5
116
+ * @description Output hash as base64 string
117
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
118
+ * @returns {String} base64 string
119
+ * @example
120
+ * md5.base64('The quick brown fox jumps over the lazy dog');
121
+ */
122
+ var createOutputMethod = function (outputType) {
123
+ return function (message) {
124
+ return new Md5(true).update(message)[outputType]();
125
+ };
126
+ };
127
+
128
+ /**
129
+ * @method create
130
+ * @memberof md5
131
+ * @description Create Md5 object
132
+ * @returns {Md5} Md5 object.
133
+ * @example
134
+ * var hash = md5.create();
135
+ */
136
+ /**
137
+ * @method update
138
+ * @memberof md5
139
+ * @description Create and update Md5 object
140
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
141
+ * @returns {Md5} Md5 object.
142
+ * @example
143
+ * var hash = md5.update('The quick brown fox jumps over the lazy dog');
144
+ * // equal to
145
+ * var hash = md5.create();
146
+ * hash.update('The quick brown fox jumps over the lazy dog');
147
+ */
148
+ var createMethod = function () {
149
+ var method = createOutputMethod('hex');
150
+ method.create = function () {
151
+ return new Md5();
152
+ };
153
+ method.update = function (message) {
154
+ return method.create().update(message);
155
+ };
156
+ for (var i = 0; i < OUTPUT_TYPES.length; ++i) {
157
+ var type = OUTPUT_TYPES[i];
158
+ method[type] = createOutputMethod(type);
159
+ }
160
+ return method;
161
+ };
162
+
163
+ /**
164
+ * Md5 class
165
+ * @class Md5
166
+ * @description This is internal class.
167
+ * @see {@link md5.create}
168
+ */
169
+ function Md5(sharedMemory) {
170
+ if (sharedMemory) {
171
+ blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =
172
+ blocks[4] = blocks[5] = blocks[6] = blocks[7] =
173
+ blocks[8] = blocks[9] = blocks[10] = blocks[11] =
174
+ blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
175
+ this.blocks = blocks;
176
+ this.buffer8 = buffer8;
177
+ } else {
178
+ {
179
+ var buffer = new ArrayBuffer(68);
180
+ this.buffer8 = new Uint8Array(buffer);
181
+ this.blocks = new Uint32Array(buffer);
182
+ }
183
+ }
184
+ this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;
185
+ this.finalized = this.hashed = false;
186
+ this.first = true;
187
+ }
188
+
189
+ /**
190
+ * @method update
191
+ * @memberof Md5
192
+ * @instance
193
+ * @description Update hash
194
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
195
+ * @returns {Md5} Md5 object.
196
+ * @see {@link md5.update}
197
+ */
198
+ Md5.prototype.update = function (message) {
199
+ if (this.finalized) {
200
+ throw new Error(FINALIZE_ERROR);
201
+ }
202
+
203
+ var result = formatMessage(message);
204
+ message = result[0];
205
+ var isString = result[1];
206
+ var code, index = 0, i, length = message.length, blocks = this.blocks;
207
+ var buffer8 = this.buffer8;
208
+
209
+ while (index < length) {
210
+ if (this.hashed) {
211
+ this.hashed = false;
212
+ blocks[0] = blocks[16];
213
+ blocks[16] = blocks[1] = blocks[2] = blocks[3] =
214
+ blocks[4] = blocks[5] = blocks[6] = blocks[7] =
215
+ blocks[8] = blocks[9] = blocks[10] = blocks[11] =
216
+ blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
217
+ }
218
+
219
+ if (isString) {
220
+ {
221
+ for (i = this.start; index < length && i < 64; ++index) {
222
+ code = message.charCodeAt(index);
223
+ if (code < 0x80) {
224
+ buffer8[i++] = code;
225
+ } else if (code < 0x800) {
226
+ buffer8[i++] = 0xc0 | (code >>> 6);
227
+ buffer8[i++] = 0x80 | (code & 0x3f);
228
+ } else if (code < 0xd800 || code >= 0xe000) {
229
+ buffer8[i++] = 0xe0 | (code >>> 12);
230
+ buffer8[i++] = 0x80 | ((code >>> 6) & 0x3f);
231
+ buffer8[i++] = 0x80 | (code & 0x3f);
232
+ } else {
233
+ code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));
234
+ buffer8[i++] = 0xf0 | (code >>> 18);
235
+ buffer8[i++] = 0x80 | ((code >>> 12) & 0x3f);
236
+ buffer8[i++] = 0x80 | ((code >>> 6) & 0x3f);
237
+ buffer8[i++] = 0x80 | (code & 0x3f);
238
+ }
239
+ }
240
+ }
241
+ } else {
242
+ {
243
+ for (i = this.start; index < length && i < 64; ++index) {
244
+ buffer8[i++] = message[index];
245
+ }
246
+ }
247
+ }
248
+ this.lastByteIndex = i;
249
+ this.bytes += i - this.start;
250
+ if (i >= 64) {
251
+ this.start = i - 64;
252
+ this.hash();
253
+ this.hashed = true;
254
+ } else {
255
+ this.start = i;
256
+ }
257
+ }
258
+ if (this.bytes > 4294967295) {
259
+ this.hBytes += this.bytes / 4294967296 << 0;
260
+ this.bytes = this.bytes % 4294967296;
261
+ }
262
+ return this;
263
+ };
264
+
265
+ Md5.prototype.finalize = function () {
266
+ if (this.finalized) {
267
+ return;
268
+ }
269
+ this.finalized = true;
270
+ var blocks = this.blocks, i = this.lastByteIndex;
271
+ blocks[i >>> 2] |= EXTRA[i & 3];
272
+ if (i >= 56) {
273
+ if (!this.hashed) {
274
+ this.hash();
275
+ }
276
+ blocks[0] = blocks[16];
277
+ blocks[16] = blocks[1] = blocks[2] = blocks[3] =
278
+ blocks[4] = blocks[5] = blocks[6] = blocks[7] =
279
+ blocks[8] = blocks[9] = blocks[10] = blocks[11] =
280
+ blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
281
+ }
282
+ blocks[14] = this.bytes << 3;
283
+ blocks[15] = this.hBytes << 3 | this.bytes >>> 29;
284
+ this.hash();
285
+ };
286
+
287
+ Md5.prototype.hash = function () {
288
+ var a, b, c, d, bc, da, blocks = this.blocks;
289
+
290
+ if (this.first) {
291
+ a = blocks[0] - 680876937;
292
+ a = (a << 7 | a >>> 25) - 271733879 << 0;
293
+ d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;
294
+ d = (d << 12 | d >>> 20) + a << 0;
295
+ c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;
296
+ c = (c << 17 | c >>> 15) + d << 0;
297
+ b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;
298
+ b = (b << 22 | b >>> 10) + c << 0;
299
+ } else {
300
+ a = this.h0;
301
+ b = this.h1;
302
+ c = this.h2;
303
+ d = this.h3;
304
+ a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936;
305
+ a = (a << 7 | a >>> 25) + b << 0;
306
+ d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586;
307
+ d = (d << 12 | d >>> 20) + a << 0;
308
+ c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819;
309
+ c = (c << 17 | c >>> 15) + d << 0;
310
+ b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330;
311
+ b = (b << 22 | b >>> 10) + c << 0;
312
+ }
313
+
314
+ a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897;
315
+ a = (a << 7 | a >>> 25) + b << 0;
316
+ d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426;
317
+ d = (d << 12 | d >>> 20) + a << 0;
318
+ c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341;
319
+ c = (c << 17 | c >>> 15) + d << 0;
320
+ b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983;
321
+ b = (b << 22 | b >>> 10) + c << 0;
322
+ a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416;
323
+ a = (a << 7 | a >>> 25) + b << 0;
324
+ d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417;
325
+ d = (d << 12 | d >>> 20) + a << 0;
326
+ c += (b ^ (d & (a ^ b))) + blocks[10] - 42063;
327
+ c = (c << 17 | c >>> 15) + d << 0;
328
+ b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162;
329
+ b = (b << 22 | b >>> 10) + c << 0;
330
+ a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682;
331
+ a = (a << 7 | a >>> 25) + b << 0;
332
+ d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101;
333
+ d = (d << 12 | d >>> 20) + a << 0;
334
+ c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290;
335
+ c = (c << 17 | c >>> 15) + d << 0;
336
+ b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329;
337
+ b = (b << 22 | b >>> 10) + c << 0;
338
+ a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510;
339
+ a = (a << 5 | a >>> 27) + b << 0;
340
+ d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632;
341
+ d = (d << 9 | d >>> 23) + a << 0;
342
+ c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713;
343
+ c = (c << 14 | c >>> 18) + d << 0;
344
+ b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302;
345
+ b = (b << 20 | b >>> 12) + c << 0;
346
+ a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691;
347
+ a = (a << 5 | a >>> 27) + b << 0;
348
+ d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083;
349
+ d = (d << 9 | d >>> 23) + a << 0;
350
+ c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335;
351
+ c = (c << 14 | c >>> 18) + d << 0;
352
+ b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848;
353
+ b = (b << 20 | b >>> 12) + c << 0;
354
+ a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438;
355
+ a = (a << 5 | a >>> 27) + b << 0;
356
+ d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690;
357
+ d = (d << 9 | d >>> 23) + a << 0;
358
+ c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961;
359
+ c = (c << 14 | c >>> 18) + d << 0;
360
+ b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501;
361
+ b = (b << 20 | b >>> 12) + c << 0;
362
+ a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467;
363
+ a = (a << 5 | a >>> 27) + b << 0;
364
+ d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784;
365
+ d = (d << 9 | d >>> 23) + a << 0;
366
+ c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473;
367
+ c = (c << 14 | c >>> 18) + d << 0;
368
+ b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734;
369
+ b = (b << 20 | b >>> 12) + c << 0;
370
+ bc = b ^ c;
371
+ a += (bc ^ d) + blocks[5] - 378558;
372
+ a = (a << 4 | a >>> 28) + b << 0;
373
+ d += (bc ^ a) + blocks[8] - 2022574463;
374
+ d = (d << 11 | d >>> 21) + a << 0;
375
+ da = d ^ a;
376
+ c += (da ^ b) + blocks[11] + 1839030562;
377
+ c = (c << 16 | c >>> 16) + d << 0;
378
+ b += (da ^ c) + blocks[14] - 35309556;
379
+ b = (b << 23 | b >>> 9) + c << 0;
380
+ bc = b ^ c;
381
+ a += (bc ^ d) + blocks[1] - 1530992060;
382
+ a = (a << 4 | a >>> 28) + b << 0;
383
+ d += (bc ^ a) + blocks[4] + 1272893353;
384
+ d = (d << 11 | d >>> 21) + a << 0;
385
+ da = d ^ a;
386
+ c += (da ^ b) + blocks[7] - 155497632;
387
+ c = (c << 16 | c >>> 16) + d << 0;
388
+ b += (da ^ c) + blocks[10] - 1094730640;
389
+ b = (b << 23 | b >>> 9) + c << 0;
390
+ bc = b ^ c;
391
+ a += (bc ^ d) + blocks[13] + 681279174;
392
+ a = (a << 4 | a >>> 28) + b << 0;
393
+ d += (bc ^ a) + blocks[0] - 358537222;
394
+ d = (d << 11 | d >>> 21) + a << 0;
395
+ da = d ^ a;
396
+ c += (da ^ b) + blocks[3] - 722521979;
397
+ c = (c << 16 | c >>> 16) + d << 0;
398
+ b += (da ^ c) + blocks[6] + 76029189;
399
+ b = (b << 23 | b >>> 9) + c << 0;
400
+ bc = b ^ c;
401
+ a += (bc ^ d) + blocks[9] - 640364487;
402
+ a = (a << 4 | a >>> 28) + b << 0;
403
+ d += (bc ^ a) + blocks[12] - 421815835;
404
+ d = (d << 11 | d >>> 21) + a << 0;
405
+ da = d ^ a;
406
+ c += (da ^ b) + blocks[15] + 530742520;
407
+ c = (c << 16 | c >>> 16) + d << 0;
408
+ b += (da ^ c) + blocks[2] - 995338651;
409
+ b = (b << 23 | b >>> 9) + c << 0;
410
+ a += (c ^ (b | ~d)) + blocks[0] - 198630844;
411
+ a = (a << 6 | a >>> 26) + b << 0;
412
+ d += (b ^ (a | ~c)) + blocks[7] + 1126891415;
413
+ d = (d << 10 | d >>> 22) + a << 0;
414
+ c += (a ^ (d | ~b)) + blocks[14] - 1416354905;
415
+ c = (c << 15 | c >>> 17) + d << 0;
416
+ b += (d ^ (c | ~a)) + blocks[5] - 57434055;
417
+ b = (b << 21 | b >>> 11) + c << 0;
418
+ a += (c ^ (b | ~d)) + blocks[12] + 1700485571;
419
+ a = (a << 6 | a >>> 26) + b << 0;
420
+ d += (b ^ (a | ~c)) + blocks[3] - 1894986606;
421
+ d = (d << 10 | d >>> 22) + a << 0;
422
+ c += (a ^ (d | ~b)) + blocks[10] - 1051523;
423
+ c = (c << 15 | c >>> 17) + d << 0;
424
+ b += (d ^ (c | ~a)) + blocks[1] - 2054922799;
425
+ b = (b << 21 | b >>> 11) + c << 0;
426
+ a += (c ^ (b | ~d)) + blocks[8] + 1873313359;
427
+ a = (a << 6 | a >>> 26) + b << 0;
428
+ d += (b ^ (a | ~c)) + blocks[15] - 30611744;
429
+ d = (d << 10 | d >>> 22) + a << 0;
430
+ c += (a ^ (d | ~b)) + blocks[6] - 1560198380;
431
+ c = (c << 15 | c >>> 17) + d << 0;
432
+ b += (d ^ (c | ~a)) + blocks[13] + 1309151649;
433
+ b = (b << 21 | b >>> 11) + c << 0;
434
+ a += (c ^ (b | ~d)) + blocks[4] - 145523070;
435
+ a = (a << 6 | a >>> 26) + b << 0;
436
+ d += (b ^ (a | ~c)) + blocks[11] - 1120210379;
437
+ d = (d << 10 | d >>> 22) + a << 0;
438
+ c += (a ^ (d | ~b)) + blocks[2] + 718787259;
439
+ c = (c << 15 | c >>> 17) + d << 0;
440
+ b += (d ^ (c | ~a)) + blocks[9] - 343485551;
441
+ b = (b << 21 | b >>> 11) + c << 0;
442
+
443
+ if (this.first) {
444
+ this.h0 = a + 1732584193 << 0;
445
+ this.h1 = b - 271733879 << 0;
446
+ this.h2 = c - 1732584194 << 0;
447
+ this.h3 = d + 271733878 << 0;
448
+ this.first = false;
449
+ } else {
450
+ this.h0 = this.h0 + a << 0;
451
+ this.h1 = this.h1 + b << 0;
452
+ this.h2 = this.h2 + c << 0;
453
+ this.h3 = this.h3 + d << 0;
454
+ }
455
+ };
456
+
457
+ /**
458
+ * @method hex
459
+ * @memberof Md5
460
+ * @instance
461
+ * @description Output hash as hex string
462
+ * @returns {String} Hex string
463
+ * @see {@link md5.hex}
464
+ * @example
465
+ * hash.hex();
466
+ */
467
+ Md5.prototype.hex = function () {
468
+ this.finalize();
469
+
470
+ var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;
471
+
472
+ return HEX_CHARS[(h0 >>> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +
473
+ HEX_CHARS[(h0 >>> 12) & 0x0F] + HEX_CHARS[(h0 >>> 8) & 0x0F] +
474
+ HEX_CHARS[(h0 >>> 20) & 0x0F] + HEX_CHARS[(h0 >>> 16) & 0x0F] +
475
+ HEX_CHARS[(h0 >>> 28) & 0x0F] + HEX_CHARS[(h0 >>> 24) & 0x0F] +
476
+ HEX_CHARS[(h1 >>> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +
477
+ HEX_CHARS[(h1 >>> 12) & 0x0F] + HEX_CHARS[(h1 >>> 8) & 0x0F] +
478
+ HEX_CHARS[(h1 >>> 20) & 0x0F] + HEX_CHARS[(h1 >>> 16) & 0x0F] +
479
+ HEX_CHARS[(h1 >>> 28) & 0x0F] + HEX_CHARS[(h1 >>> 24) & 0x0F] +
480
+ HEX_CHARS[(h2 >>> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +
481
+ HEX_CHARS[(h2 >>> 12) & 0x0F] + HEX_CHARS[(h2 >>> 8) & 0x0F] +
482
+ HEX_CHARS[(h2 >>> 20) & 0x0F] + HEX_CHARS[(h2 >>> 16) & 0x0F] +
483
+ HEX_CHARS[(h2 >>> 28) & 0x0F] + HEX_CHARS[(h2 >>> 24) & 0x0F] +
484
+ HEX_CHARS[(h3 >>> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +
485
+ HEX_CHARS[(h3 >>> 12) & 0x0F] + HEX_CHARS[(h3 >>> 8) & 0x0F] +
486
+ HEX_CHARS[(h3 >>> 20) & 0x0F] + HEX_CHARS[(h3 >>> 16) & 0x0F] +
487
+ HEX_CHARS[(h3 >>> 28) & 0x0F] + HEX_CHARS[(h3 >>> 24) & 0x0F];
488
+ };
489
+
490
+ /**
491
+ * @method toString
492
+ * @memberof Md5
493
+ * @instance
494
+ * @description Output hash as hex string
495
+ * @returns {String} Hex string
496
+ * @see {@link md5.hex}
497
+ * @example
498
+ * hash.toString();
499
+ */
500
+ Md5.prototype.toString = Md5.prototype.hex;
501
+
502
+ /**
503
+ * @method digest
504
+ * @memberof Md5
505
+ * @instance
506
+ * @description Output hash as bytes array
507
+ * @returns {Array} Bytes array
508
+ * @see {@link md5.digest}
509
+ * @example
510
+ * hash.digest();
511
+ */
512
+ Md5.prototype.digest = function () {
513
+ this.finalize();
514
+
515
+ var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;
516
+ return [
517
+ h0 & 0xFF, (h0 >>> 8) & 0xFF, (h0 >>> 16) & 0xFF, (h0 >>> 24) & 0xFF,
518
+ h1 & 0xFF, (h1 >>> 8) & 0xFF, (h1 >>> 16) & 0xFF, (h1 >>> 24) & 0xFF,
519
+ h2 & 0xFF, (h2 >>> 8) & 0xFF, (h2 >>> 16) & 0xFF, (h2 >>> 24) & 0xFF,
520
+ h3 & 0xFF, (h3 >>> 8) & 0xFF, (h3 >>> 16) & 0xFF, (h3 >>> 24) & 0xFF
521
+ ];
522
+ };
523
+
524
+ /**
525
+ * @method array
526
+ * @memberof Md5
527
+ * @instance
528
+ * @description Output hash as bytes array
529
+ * @returns {Array} Bytes array
530
+ * @see {@link md5.array}
531
+ * @example
532
+ * hash.array();
533
+ */
534
+ Md5.prototype.array = Md5.prototype.digest;
535
+
536
+ /**
537
+ * @method arrayBuffer
538
+ * @memberof Md5
539
+ * @instance
540
+ * @description Output hash as ArrayBuffer
541
+ * @returns {ArrayBuffer} ArrayBuffer
542
+ * @see {@link md5.arrayBuffer}
543
+ * @example
544
+ * hash.arrayBuffer();
545
+ */
546
+ Md5.prototype.arrayBuffer = function () {
547
+ this.finalize();
548
+
549
+ var buffer = new ArrayBuffer(16);
550
+ var blocks = new Uint32Array(buffer);
551
+ blocks[0] = this.h0;
552
+ blocks[1] = this.h1;
553
+ blocks[2] = this.h2;
554
+ blocks[3] = this.h3;
555
+ return buffer;
556
+ };
557
+
558
+ var exports = createMethod();
559
+ exports.md5 = exports;
560
+
561
+ if (COMMON_JS) {
562
+ module.exports = exports;
563
+ } else {
564
+ /**
565
+ * @method md5
566
+ * @description Md5 hash function, export to global in browsers.
567
+ * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
568
+ * @returns {String} md5 hashes
569
+ * @example
570
+ * md5(''); // d41d8cd98f00b204e9800998ecf8427e
571
+ * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6
572
+ * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0
573
+ *
574
+ * // It also supports UTF-8 encoding
575
+ * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07
576
+ *
577
+ * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`
578
+ * md5([]); // d41d8cd98f00b204e9800998ecf8427e
579
+ * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e
580
+ */
581
+ root.md5 = exports;
582
+ }
583
+ })();
584
+ } (md5$1));
585
+
586
+ var md5Exports = md5$1.exports;
587
+ var md5 = /*@__PURE__*/getDefaultExportFromCjs(md5Exports);
588
+
589
+ export { md5 as default, md5 };