@ivujs/i-utils 1.1.1

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.
Files changed (132) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/dist/cjs/ID-card/index.cjs +122 -0
  4. package/dist/cjs/array/index.cjs +465 -0
  5. package/dist/cjs/clipboard/index.cjs +135 -0
  6. package/dist/cjs/color/index.cjs +210 -0
  7. package/dist/cjs/constants/date.cjs +186 -0
  8. package/dist/cjs/constants/lang.cjs +13 -0
  9. package/dist/cjs/constants/math.cjs +13 -0
  10. package/dist/cjs/constants/regexp.cjs +57 -0
  11. package/dist/cjs/constants/sort.cjs +15 -0
  12. package/dist/cjs/cookie/index.cjs +71 -0
  13. package/dist/cjs/crypto/aes/aes.cjs +533 -0
  14. package/dist/cjs/crypto/aes/index.cjs +28 -0
  15. package/dist/cjs/crypto/base32/base32.cjs +385 -0
  16. package/dist/cjs/crypto/base32/index.cjs +44 -0
  17. package/dist/cjs/crypto/base64/base64.cjs +433 -0
  18. package/dist/cjs/crypto/base64/index.cjs +64 -0
  19. package/dist/cjs/crypto/des/des.cjs +1054 -0
  20. package/dist/cjs/crypto/des/index.cjs +30 -0
  21. package/dist/cjs/crypto/md5/index.cjs +25 -0
  22. package/dist/cjs/crypto/md5/md5.cjs +944 -0
  23. package/dist/cjs/crypto/sha/sha1/index.cjs +25 -0
  24. package/dist/cjs/crypto/sha/sha1/sha1.cjs +602 -0
  25. package/dist/cjs/crypto/sha/sha256/index.cjs +46 -0
  26. package/dist/cjs/crypto/sha/sha256/sha256.cjs +654 -0
  27. package/dist/cjs/crypto/sha/sha3/index.cjs +44 -0
  28. package/dist/cjs/crypto/sha/sha3/sha3.cjs +747 -0
  29. package/dist/cjs/crypto/sha/sha512/index.cjs +88 -0
  30. package/dist/cjs/crypto/sha/sha512/sha512.cjs +1186 -0
  31. package/dist/cjs/crypto/sm/lib/asn1.cjs +167 -0
  32. package/dist/cjs/crypto/sm/lib/ec.cjs +352 -0
  33. package/dist/cjs/crypto/sm/lib/jsbn.cjs +1633 -0
  34. package/dist/cjs/crypto/sm/lib/sm3.cjs +173 -0
  35. package/dist/cjs/crypto/sm/lib/utils.cjs +198 -0
  36. package/dist/cjs/crypto/sm/sm2/index.cjs +122 -0
  37. package/dist/cjs/crypto/sm/sm2/sm2.cjs +269 -0
  38. package/dist/cjs/crypto/sm/sm3/index.cjs +15 -0
  39. package/dist/cjs/crypto/sm/sm3/sm3.cjs +103 -0
  40. package/dist/cjs/crypto/sm/sm4/index.cjs +28 -0
  41. package/dist/cjs/crypto/sm/sm4/sm4.cjs +362 -0
  42. package/dist/cjs/crypto/tea/index.cjs +26 -0
  43. package/dist/cjs/crypto/tea/tea.cjs +215 -0
  44. package/dist/cjs/date/index.cjs +1349 -0
  45. package/dist/cjs/desensitized/index.cjs +74 -0
  46. package/dist/cjs/device/index.cjs +159 -0
  47. package/dist/cjs/dom/index.cjs +176 -0
  48. package/dist/cjs/file/index.cjs +339 -0
  49. package/dist/cjs/function/index.cjs +67 -0
  50. package/dist/cjs/id/index.cjs +46 -0
  51. package/dist/cjs/index.cjs +399 -0
  52. package/dist/cjs/keycode/index.cjs +142 -0
  53. package/dist/cjs/math/index.cjs +284 -0
  54. package/dist/cjs/number/index.cjs +14 -0
  55. package/dist/cjs/object/index.cjs +216 -0
  56. package/dist/cjs/pagination/index.cjs +140 -0
  57. package/dist/cjs/random/index.cjs +25 -0
  58. package/dist/cjs/regexp/index.cjs +109 -0
  59. package/dist/cjs/storage/index.cjs +11 -0
  60. package/dist/cjs/storage/localStorage.cjs +40 -0
  61. package/dist/cjs/storage/sessionStorage.cjs +40 -0
  62. package/dist/cjs/string/index.cjs +338 -0
  63. package/dist/cjs/url/index.cjs +279 -0
  64. package/dist/cjs/validate/index.cjs +487 -0
  65. package/dist/cjs/weapp/index.cjs +151 -0
  66. package/dist/es/ID-card/index.mjs +116 -0
  67. package/dist/es/array/index.mjs +437 -0
  68. package/dist/es/clipboard/index.mjs +129 -0
  69. package/dist/es/color/index.mjs +200 -0
  70. package/dist/es/constants/date.mjs +184 -0
  71. package/dist/es/constants/lang.mjs +11 -0
  72. package/dist/es/constants/math.mjs +11 -0
  73. package/dist/es/constants/regexp.mjs +55 -0
  74. package/dist/es/constants/sort.mjs +13 -0
  75. package/dist/es/cookie/index.mjs +65 -0
  76. package/dist/es/crypto/aes/aes.mjs +529 -0
  77. package/dist/es/crypto/aes/index.mjs +25 -0
  78. package/dist/es/crypto/base32/base32.mjs +381 -0
  79. package/dist/es/crypto/base32/index.mjs +39 -0
  80. package/dist/es/crypto/base64/base64.mjs +427 -0
  81. package/dist/es/crypto/base64/index.mjs +57 -0
  82. package/dist/es/crypto/des/des.mjs +1050 -0
  83. package/dist/es/crypto/des/index.mjs +27 -0
  84. package/dist/es/crypto/md5/index.mjs +22 -0
  85. package/dist/es/crypto/md5/md5.mjs +941 -0
  86. package/dist/es/crypto/sha/sha1/index.mjs +22 -0
  87. package/dist/es/crypto/sha/sha1/sha1.mjs +599 -0
  88. package/dist/es/crypto/sha/sha256/index.mjs +41 -0
  89. package/dist/es/crypto/sha/sha256/sha256.mjs +649 -0
  90. package/dist/es/crypto/sha/sha3/index.mjs +39 -0
  91. package/dist/es/crypto/sha/sha3/sha3.mjs +742 -0
  92. package/dist/es/crypto/sha/sha512/index.mjs +79 -0
  93. package/dist/es/crypto/sha/sha512/sha512.mjs +1177 -0
  94. package/dist/es/crypto/sm/lib/asn1.mjs +164 -0
  95. package/dist/es/crypto/sm/lib/ec.mjs +349 -0
  96. package/dist/es/crypto/sm/lib/jsbn.mjs +1630 -0
  97. package/dist/es/crypto/sm/lib/sm3.mjs +170 -0
  98. package/dist/es/crypto/sm/lib/utils.mjs +186 -0
  99. package/dist/es/crypto/sm/sm2/index.mjs +111 -0
  100. package/dist/es/crypto/sm/sm2/sm2.mjs +258 -0
  101. package/dist/es/crypto/sm/sm3/index.mjs +13 -0
  102. package/dist/es/crypto/sm/sm3/sm3.mjs +99 -0
  103. package/dist/es/crypto/sm/sm4/index.mjs +25 -0
  104. package/dist/es/crypto/sm/sm4/sm4.mjs +359 -0
  105. package/dist/es/crypto/tea/index.mjs +23 -0
  106. package/dist/es/crypto/tea/tea.mjs +211 -0
  107. package/dist/es/date/index.mjs +1262 -0
  108. package/dist/es/desensitized/index.mjs +69 -0
  109. package/dist/es/device/index.mjs +145 -0
  110. package/dist/es/dom/index.mjs +164 -0
  111. package/dist/es/file/index.mjs +323 -0
  112. package/dist/es/function/index.mjs +63 -0
  113. package/dist/es/id/index.mjs +43 -0
  114. package/dist/es/index.mjs +59 -0
  115. package/dist/es/keycode/index.mjs +139 -0
  116. package/dist/es/math/index.mjs +274 -0
  117. package/dist/es/number/index.mjs +12 -0
  118. package/dist/es/object/index.mjs +203 -0
  119. package/dist/es/pagination/index.mjs +134 -0
  120. package/dist/es/random/index.mjs +22 -0
  121. package/dist/es/regexp/index.mjs +98 -0
  122. package/dist/es/storage/index.mjs +9 -0
  123. package/dist/es/storage/localStorage.mjs +35 -0
  124. package/dist/es/storage/sessionStorage.mjs +35 -0
  125. package/dist/es/string/index.mjs +321 -0
  126. package/dist/es/url/index.mjs +261 -0
  127. package/dist/es/validate/index.mjs +451 -0
  128. package/dist/es/weapp/index.mjs +140 -0
  129. package/dist/lib/index.full.esm.js +15825 -0
  130. package/dist/lib/index.full.esm.min.js +58 -0
  131. package/dist/lib/index.full.umd.js +16179 -0
  132. package/package.json +54 -0
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var sha1$1 = require('./sha1.cjs');
4
+
5
+ /**
6
+ * sha1 加密
7
+ * @param {String} str 字符串
8
+ * @returns {String} 返回加密后的字符串
9
+ */
10
+ function sha1(str) {
11
+ return sha1$1.sha1(str);
12
+ }
13
+
14
+ /**
15
+ * sha1_hmac 加密
16
+ * @param {String} str 字符串
17
+ * @param {String} key 秘钥
18
+ * @returns {String} 返回加密后的字符串
19
+ */
20
+ function sha1_hmac(str, key) {
21
+ return sha1$1.sha1_hmac(key, str);
22
+ }
23
+
24
+ exports.sha1 = sha1;
25
+ exports.sha1_hmac = sha1_hmac;
@@ -0,0 +1,602 @@
1
+ 'use strict';
2
+
3
+ /*
4
+ * [js-sha1]{@link https://github.com/emn178/js-sha1}
5
+ *
6
+ * @version 0.7.0
7
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
8
+ * @copyright Chen, Yi-Cyuan 2014-2024
9
+ * @license MIT
10
+ */
11
+ /* jslint bitwise: true */
12
+
13
+ var INPUT_ERROR = "input is invalid type";
14
+ var FINALIZE_ERROR = "finalize already called";
15
+ var WINDOW = typeof window === "object";
16
+ var root = WINDOW ? window : {};
17
+ if (root.JS_SHA1_NO_WINDOW) {
18
+ WINDOW = false;
19
+ }
20
+ var WEB_WORKER = !WINDOW && typeof self === "object";
21
+ var NODE_JS = !root.JS_SHA1_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node;
22
+ if (NODE_JS) {
23
+ root = global;
24
+ } else if (WEB_WORKER) {
25
+ root = self;
26
+ }
27
+ var ARRAY_BUFFER = !root.JS_SHA1_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined";
28
+ var HEX_CHARS = "0123456789abcdef".split("");
29
+ var EXTRA = [-2147483648, 8388608, 32768, 128];
30
+ var SHIFT = [24, 16, 8, 0];
31
+ var OUTPUT_TYPES = ["hex", "array", "digest", "arrayBuffer"];
32
+
33
+ var blocks = [];
34
+
35
+ var isArray = Array.isArray;
36
+ if (root.JS_SHA1_NO_NODE_JS || !isArray) {
37
+ isArray = function (obj) {
38
+ return Object.prototype.toString.call(obj) === "[object Array]";
39
+ };
40
+ }
41
+
42
+ var isView = ArrayBuffer.isView;
43
+ if (ARRAY_BUFFER && (root.JS_SHA1_NO_ARRAY_BUFFER_IS_VIEW || !isView)) {
44
+ isView = function (obj) {
45
+ return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer;
46
+ };
47
+ }
48
+
49
+ // [message: string, isString: bool]
50
+ var formatMessage = function (message) {
51
+ var type = typeof message;
52
+ if (type === "string") {
53
+ return [message, true];
54
+ }
55
+ if (type !== "object" || message === null) {
56
+ throw new Error(INPUT_ERROR);
57
+ }
58
+ if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {
59
+ return [new Uint8Array(message), false];
60
+ }
61
+ if (!isArray(message) && !isView(message)) {
62
+ throw new Error(INPUT_ERROR);
63
+ }
64
+ return [message, false];
65
+ };
66
+
67
+ var createOutputMethod = function (outputType) {
68
+ return function (message) {
69
+ return new Sha1(true).update(message)[outputType]();
70
+ };
71
+ };
72
+
73
+ var createMethod = function () {
74
+ var method = createOutputMethod("hex");
75
+ if (NODE_JS) {
76
+ method = nodeWrap(method);
77
+ }
78
+ method.create = function () {
79
+ return new Sha1();
80
+ };
81
+ method.update = function (message) {
82
+ return method.create().update(message);
83
+ };
84
+ for (var i = 0; i < OUTPUT_TYPES.length; ++i) {
85
+ var type = OUTPUT_TYPES[i];
86
+ method[type] = createOutputMethod(type);
87
+ }
88
+ return method;
89
+ };
90
+
91
+ var nodeWrap = function (method) {
92
+ var crypto = require("crypto");
93
+ var Buffer = require("buffer").Buffer;
94
+ var bufferFrom;
95
+ if (Buffer.from && !root.JS_SHA1_NO_BUFFER_FROM) {
96
+ bufferFrom = Buffer.from;
97
+ } else {
98
+ bufferFrom = function (message) {
99
+ return new Buffer(message);
100
+ };
101
+ }
102
+ var nodeMethod = function (message) {
103
+ if (typeof message === "string") {
104
+ return crypto.createHash("sha1").update(message, "utf8").digest("hex");
105
+ } else {
106
+ if (message === null || message === undefined) {
107
+ throw new Error(INPUT_ERROR);
108
+ } else if (message.constructor === ArrayBuffer) {
109
+ message = new Uint8Array(message);
110
+ }
111
+ }
112
+ if (isArray(message) || isView(message) || message.constructor === Buffer) {
113
+ return crypto.createHash("sha1").update(bufferFrom(message)).digest("hex");
114
+ } else {
115
+ return method(message);
116
+ }
117
+ };
118
+ return nodeMethod;
119
+ };
120
+
121
+ var createHmacOutputMethod = function (outputType) {
122
+ return function (key, message) {
123
+ return new HmacSha1(key, true).update(message)[outputType]();
124
+ };
125
+ };
126
+
127
+ var createHmacMethod = function () {
128
+ var method = createHmacOutputMethod("hex");
129
+ method.create = function (key) {
130
+ return new HmacSha1(key);
131
+ };
132
+ method.update = function (key, message) {
133
+ return method.create(key).update(message);
134
+ };
135
+ for (var i = 0; i < OUTPUT_TYPES.length; ++i) {
136
+ var type = OUTPUT_TYPES[i];
137
+ method[type] = createHmacOutputMethod(type);
138
+ }
139
+ return method;
140
+ };
141
+
142
+ function Sha1(sharedMemory) {
143
+ if (sharedMemory) {
144
+ blocks[0] =
145
+ blocks[16] =
146
+ blocks[1] =
147
+ blocks[2] =
148
+ blocks[3] =
149
+ blocks[4] =
150
+ blocks[5] =
151
+ blocks[6] =
152
+ blocks[7] =
153
+ blocks[8] =
154
+ blocks[9] =
155
+ blocks[10] =
156
+ blocks[11] =
157
+ blocks[12] =
158
+ blocks[13] =
159
+ blocks[14] =
160
+ blocks[15] =
161
+ 0;
162
+ this.blocks = blocks;
163
+ } else {
164
+ this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
165
+ }
166
+
167
+ this.h0 = 0x67452301;
168
+ this.h1 = 0xefcdab89;
169
+ this.h2 = 0x98badcfe;
170
+ this.h3 = 0x10325476;
171
+ this.h4 = 0xc3d2e1f0;
172
+
173
+ this.block = this.start = this.bytes = this.hBytes = 0;
174
+ this.finalized = this.hashed = false;
175
+ this.first = true;
176
+ }
177
+
178
+ Sha1.prototype.update = function (message) {
179
+ if (this.finalized) {
180
+ throw new Error(FINALIZE_ERROR);
181
+ }
182
+
183
+ var result = formatMessage(message);
184
+ message = result[0];
185
+ var isString = result[1];
186
+ var code,
187
+ index = 0,
188
+ i,
189
+ length = message.length || 0,
190
+ blocks = this.blocks;
191
+
192
+ while (index < length) {
193
+ if (this.hashed) {
194
+ this.hashed = false;
195
+ blocks[0] = this.block;
196
+ this.block =
197
+ blocks[16] =
198
+ blocks[1] =
199
+ blocks[2] =
200
+ blocks[3] =
201
+ blocks[4] =
202
+ blocks[5] =
203
+ blocks[6] =
204
+ blocks[7] =
205
+ blocks[8] =
206
+ blocks[9] =
207
+ blocks[10] =
208
+ blocks[11] =
209
+ blocks[12] =
210
+ blocks[13] =
211
+ blocks[14] =
212
+ blocks[15] =
213
+ 0;
214
+ }
215
+
216
+ if (isString) {
217
+ for (i = this.start; index < length && i < 64; ++index) {
218
+ code = message.charCodeAt(index);
219
+ if (code < 0x80) {
220
+ blocks[i >>> 2] |= code << SHIFT[i++ & 3];
221
+ } else if (code < 0x800) {
222
+ blocks[i >>> 2] |= (0xc0 | (code >>> 6)) << SHIFT[i++ & 3];
223
+ blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
224
+ } else if (code < 0xd800 || code >= 0xe000) {
225
+ blocks[i >>> 2] |= (0xe0 | (code >>> 12)) << SHIFT[i++ & 3];
226
+ blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];
227
+ blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
228
+ } else {
229
+ code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));
230
+ blocks[i >>> 2] |= (0xf0 | (code >>> 18)) << SHIFT[i++ & 3];
231
+ blocks[i >>> 2] |= (0x80 | ((code >>> 12) & 0x3f)) << SHIFT[i++ & 3];
232
+ blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];
233
+ blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
234
+ }
235
+ }
236
+ } else {
237
+ for (i = this.start; index < length && i < 64; ++index) {
238
+ blocks[i >>> 2] |= message[index] << SHIFT[i++ & 3];
239
+ }
240
+ }
241
+
242
+ this.lastByteIndex = i;
243
+ this.bytes += i - this.start;
244
+ if (i >= 64) {
245
+ this.block = blocks[16];
246
+ this.start = i - 64;
247
+ this.hash();
248
+ this.hashed = true;
249
+ } else {
250
+ this.start = i;
251
+ }
252
+ }
253
+ if (this.bytes > 4294967295) {
254
+ this.hBytes += (this.bytes / 4294967296) << 0;
255
+ this.bytes = this.bytes % 4294967296;
256
+ }
257
+ return this;
258
+ };
259
+
260
+ Sha1.prototype.finalize = function () {
261
+ if (this.finalized) {
262
+ return;
263
+ }
264
+ this.finalized = true;
265
+ var blocks = this.blocks,
266
+ i = this.lastByteIndex;
267
+ blocks[16] = this.block;
268
+ blocks[i >>> 2] |= EXTRA[i & 3];
269
+ this.block = blocks[16];
270
+ if (i >= 56) {
271
+ if (!this.hashed) {
272
+ this.hash();
273
+ }
274
+ blocks[0] = this.block;
275
+ blocks[16] =
276
+ blocks[1] =
277
+ blocks[2] =
278
+ blocks[3] =
279
+ blocks[4] =
280
+ blocks[5] =
281
+ blocks[6] =
282
+ blocks[7] =
283
+ blocks[8] =
284
+ blocks[9] =
285
+ blocks[10] =
286
+ blocks[11] =
287
+ blocks[12] =
288
+ blocks[13] =
289
+ blocks[14] =
290
+ blocks[15] =
291
+ 0;
292
+ }
293
+ blocks[14] = (this.hBytes << 3) | (this.bytes >>> 29);
294
+ blocks[15] = this.bytes << 3;
295
+ this.hash();
296
+ };
297
+
298
+ Sha1.prototype.hash = function () {
299
+ var a = this.h0,
300
+ b = this.h1,
301
+ c = this.h2,
302
+ d = this.h3,
303
+ e = this.h4;
304
+ var f,
305
+ j,
306
+ t,
307
+ blocks = this.blocks;
308
+
309
+ for (j = 16; j < 80; ++j) {
310
+ t = blocks[j - 3] ^ blocks[j - 8] ^ blocks[j - 14] ^ blocks[j - 16];
311
+ blocks[j] = (t << 1) | (t >>> 31);
312
+ }
313
+
314
+ for (j = 0; j < 20; j += 5) {
315
+ f = (b & c) | (~b & d);
316
+ t = (a << 5) | (a >>> 27);
317
+ e = (t + f + e + 1518500249 + blocks[j]) << 0;
318
+ b = (b << 30) | (b >>> 2);
319
+
320
+ f = (a & b) | (~a & c);
321
+ t = (e << 5) | (e >>> 27);
322
+ d = (t + f + d + 1518500249 + blocks[j + 1]) << 0;
323
+ a = (a << 30) | (a >>> 2);
324
+
325
+ f = (e & a) | (~e & b);
326
+ t = (d << 5) | (d >>> 27);
327
+ c = (t + f + c + 1518500249 + blocks[j + 2]) << 0;
328
+ e = (e << 30) | (e >>> 2);
329
+
330
+ f = (d & e) | (~d & a);
331
+ t = (c << 5) | (c >>> 27);
332
+ b = (t + f + b + 1518500249 + blocks[j + 3]) << 0;
333
+ d = (d << 30) | (d >>> 2);
334
+
335
+ f = (c & d) | (~c & e);
336
+ t = (b << 5) | (b >>> 27);
337
+ a = (t + f + a + 1518500249 + blocks[j + 4]) << 0;
338
+ c = (c << 30) | (c >>> 2);
339
+ }
340
+
341
+ for (; j < 40; j += 5) {
342
+ f = b ^ c ^ d;
343
+ t = (a << 5) | (a >>> 27);
344
+ e = (t + f + e + 1859775393 + blocks[j]) << 0;
345
+ b = (b << 30) | (b >>> 2);
346
+
347
+ f = a ^ b ^ c;
348
+ t = (e << 5) | (e >>> 27);
349
+ d = (t + f + d + 1859775393 + blocks[j + 1]) << 0;
350
+ a = (a << 30) | (a >>> 2);
351
+
352
+ f = e ^ a ^ b;
353
+ t = (d << 5) | (d >>> 27);
354
+ c = (t + f + c + 1859775393 + blocks[j + 2]) << 0;
355
+ e = (e << 30) | (e >>> 2);
356
+
357
+ f = d ^ e ^ a;
358
+ t = (c << 5) | (c >>> 27);
359
+ b = (t + f + b + 1859775393 + blocks[j + 3]) << 0;
360
+ d = (d << 30) | (d >>> 2);
361
+
362
+ f = c ^ d ^ e;
363
+ t = (b << 5) | (b >>> 27);
364
+ a = (t + f + a + 1859775393 + blocks[j + 4]) << 0;
365
+ c = (c << 30) | (c >>> 2);
366
+ }
367
+
368
+ for (; j < 60; j += 5) {
369
+ f = (b & c) | (b & d) | (c & d);
370
+ t = (a << 5) | (a >>> 27);
371
+ e = (t + f + e - 1894007588 + blocks[j]) << 0;
372
+ b = (b << 30) | (b >>> 2);
373
+
374
+ f = (a & b) | (a & c) | (b & c);
375
+ t = (e << 5) | (e >>> 27);
376
+ d = (t + f + d - 1894007588 + blocks[j + 1]) << 0;
377
+ a = (a << 30) | (a >>> 2);
378
+
379
+ f = (e & a) | (e & b) | (a & b);
380
+ t = (d << 5) | (d >>> 27);
381
+ c = (t + f + c - 1894007588 + blocks[j + 2]) << 0;
382
+ e = (e << 30) | (e >>> 2);
383
+
384
+ f = (d & e) | (d & a) | (e & a);
385
+ t = (c << 5) | (c >>> 27);
386
+ b = (t + f + b - 1894007588 + blocks[j + 3]) << 0;
387
+ d = (d << 30) | (d >>> 2);
388
+
389
+ f = (c & d) | (c & e) | (d & e);
390
+ t = (b << 5) | (b >>> 27);
391
+ a = (t + f + a - 1894007588 + blocks[j + 4]) << 0;
392
+ c = (c << 30) | (c >>> 2);
393
+ }
394
+
395
+ for (; j < 80; j += 5) {
396
+ f = b ^ c ^ d;
397
+ t = (a << 5) | (a >>> 27);
398
+ e = (t + f + e - 899497514 + blocks[j]) << 0;
399
+ b = (b << 30) | (b >>> 2);
400
+
401
+ f = a ^ b ^ c;
402
+ t = (e << 5) | (e >>> 27);
403
+ d = (t + f + d - 899497514 + blocks[j + 1]) << 0;
404
+ a = (a << 30) | (a >>> 2);
405
+
406
+ f = e ^ a ^ b;
407
+ t = (d << 5) | (d >>> 27);
408
+ c = (t + f + c - 899497514 + blocks[j + 2]) << 0;
409
+ e = (e << 30) | (e >>> 2);
410
+
411
+ f = d ^ e ^ a;
412
+ t = (c << 5) | (c >>> 27);
413
+ b = (t + f + b - 899497514 + blocks[j + 3]) << 0;
414
+ d = (d << 30) | (d >>> 2);
415
+
416
+ f = c ^ d ^ e;
417
+ t = (b << 5) | (b >>> 27);
418
+ a = (t + f + a - 899497514 + blocks[j + 4]) << 0;
419
+ c = (c << 30) | (c >>> 2);
420
+ }
421
+
422
+ this.h0 = (this.h0 + a) << 0;
423
+ this.h1 = (this.h1 + b) << 0;
424
+ this.h2 = (this.h2 + c) << 0;
425
+ this.h3 = (this.h3 + d) << 0;
426
+ this.h4 = (this.h4 + e) << 0;
427
+ };
428
+
429
+ Sha1.prototype.hex = function () {
430
+ this.finalize();
431
+
432
+ var h0 = this.h0,
433
+ h1 = this.h1,
434
+ h2 = this.h2,
435
+ h3 = this.h3,
436
+ h4 = this.h4;
437
+
438
+ return (
439
+ HEX_CHARS[(h0 >>> 28) & 0x0f] +
440
+ HEX_CHARS[(h0 >>> 24) & 0x0f] +
441
+ HEX_CHARS[(h0 >>> 20) & 0x0f] +
442
+ HEX_CHARS[(h0 >>> 16) & 0x0f] +
443
+ HEX_CHARS[(h0 >>> 12) & 0x0f] +
444
+ HEX_CHARS[(h0 >>> 8) & 0x0f] +
445
+ HEX_CHARS[(h0 >>> 4) & 0x0f] +
446
+ HEX_CHARS[h0 & 0x0f] +
447
+ HEX_CHARS[(h1 >>> 28) & 0x0f] +
448
+ HEX_CHARS[(h1 >>> 24) & 0x0f] +
449
+ HEX_CHARS[(h1 >>> 20) & 0x0f] +
450
+ HEX_CHARS[(h1 >>> 16) & 0x0f] +
451
+ HEX_CHARS[(h1 >>> 12) & 0x0f] +
452
+ HEX_CHARS[(h1 >>> 8) & 0x0f] +
453
+ HEX_CHARS[(h1 >>> 4) & 0x0f] +
454
+ HEX_CHARS[h1 & 0x0f] +
455
+ HEX_CHARS[(h2 >>> 28) & 0x0f] +
456
+ HEX_CHARS[(h2 >>> 24) & 0x0f] +
457
+ HEX_CHARS[(h2 >>> 20) & 0x0f] +
458
+ HEX_CHARS[(h2 >>> 16) & 0x0f] +
459
+ HEX_CHARS[(h2 >>> 12) & 0x0f] +
460
+ HEX_CHARS[(h2 >>> 8) & 0x0f] +
461
+ HEX_CHARS[(h2 >>> 4) & 0x0f] +
462
+ HEX_CHARS[h2 & 0x0f] +
463
+ HEX_CHARS[(h3 >>> 28) & 0x0f] +
464
+ HEX_CHARS[(h3 >>> 24) & 0x0f] +
465
+ HEX_CHARS[(h3 >>> 20) & 0x0f] +
466
+ HEX_CHARS[(h3 >>> 16) & 0x0f] +
467
+ HEX_CHARS[(h3 >>> 12) & 0x0f] +
468
+ HEX_CHARS[(h3 >>> 8) & 0x0f] +
469
+ HEX_CHARS[(h3 >>> 4) & 0x0f] +
470
+ HEX_CHARS[h3 & 0x0f] +
471
+ HEX_CHARS[(h4 >>> 28) & 0x0f] +
472
+ HEX_CHARS[(h4 >>> 24) & 0x0f] +
473
+ HEX_CHARS[(h4 >>> 20) & 0x0f] +
474
+ HEX_CHARS[(h4 >>> 16) & 0x0f] +
475
+ HEX_CHARS[(h4 >>> 12) & 0x0f] +
476
+ HEX_CHARS[(h4 >>> 8) & 0x0f] +
477
+ HEX_CHARS[(h4 >>> 4) & 0x0f] +
478
+ HEX_CHARS[h4 & 0x0f]
479
+ );
480
+ };
481
+
482
+ Sha1.prototype.toString = Sha1.prototype.hex;
483
+
484
+ Sha1.prototype.digest = function () {
485
+ this.finalize();
486
+
487
+ var h0 = this.h0,
488
+ h1 = this.h1,
489
+ h2 = this.h2,
490
+ h3 = this.h3,
491
+ h4 = this.h4;
492
+
493
+ return [
494
+ (h0 >>> 24) & 0xff,
495
+ (h0 >>> 16) & 0xff,
496
+ (h0 >>> 8) & 0xff,
497
+ h0 & 0xff,
498
+ (h1 >>> 24) & 0xff,
499
+ (h1 >>> 16) & 0xff,
500
+ (h1 >>> 8) & 0xff,
501
+ h1 & 0xff,
502
+ (h2 >>> 24) & 0xff,
503
+ (h2 >>> 16) & 0xff,
504
+ (h2 >>> 8) & 0xff,
505
+ h2 & 0xff,
506
+ (h3 >>> 24) & 0xff,
507
+ (h3 >>> 16) & 0xff,
508
+ (h3 >>> 8) & 0xff,
509
+ h3 & 0xff,
510
+ (h4 >>> 24) & 0xff,
511
+ (h4 >>> 16) & 0xff,
512
+ (h4 >>> 8) & 0xff,
513
+ h4 & 0xff,
514
+ ];
515
+ };
516
+
517
+ Sha1.prototype.array = Sha1.prototype.digest;
518
+
519
+ Sha1.prototype.arrayBuffer = function () {
520
+ this.finalize();
521
+
522
+ var buffer = new ArrayBuffer(20);
523
+ var dataView = new DataView(buffer);
524
+ dataView.setUint32(0, this.h0);
525
+ dataView.setUint32(4, this.h1);
526
+ dataView.setUint32(8, this.h2);
527
+ dataView.setUint32(12, this.h3);
528
+ dataView.setUint32(16, this.h4);
529
+ return buffer;
530
+ };
531
+
532
+ function HmacSha1(key, sharedMemory) {
533
+ var i,
534
+ result = formatMessage(key);
535
+ key = result[0];
536
+ if (result[1]) {
537
+ var bytes = [],
538
+ length = key.length,
539
+ index = 0,
540
+ code;
541
+ for (i = 0; i < length; ++i) {
542
+ code = key.charCodeAt(i);
543
+ if (code < 0x80) {
544
+ bytes[index++] = code;
545
+ } else if (code < 0x800) {
546
+ bytes[index++] = 0xc0 | (code >>> 6);
547
+ bytes[index++] = 0x80 | (code & 0x3f);
548
+ } else if (code < 0xd800 || code >= 0xe000) {
549
+ bytes[index++] = 0xe0 | (code >>> 12);
550
+ bytes[index++] = 0x80 | ((code >>> 6) & 0x3f);
551
+ bytes[index++] = 0x80 | (code & 0x3f);
552
+ } else {
553
+ code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));
554
+ bytes[index++] = 0xf0 | (code >>> 18);
555
+ bytes[index++] = 0x80 | ((code >>> 12) & 0x3f);
556
+ bytes[index++] = 0x80 | ((code >>> 6) & 0x3f);
557
+ bytes[index++] = 0x80 | (code & 0x3f);
558
+ }
559
+ }
560
+ key = bytes;
561
+ }
562
+
563
+ if (key.length > 64) {
564
+ key = new Sha1(true).update(key).array();
565
+ }
566
+
567
+ var oKeyPad = [],
568
+ iKeyPad = [];
569
+ for (i = 0; i < 64; ++i) {
570
+ var b = key[i] || 0;
571
+ oKeyPad[i] = 0x5c ^ b;
572
+ iKeyPad[i] = 0x36 ^ b;
573
+ }
574
+
575
+ Sha1.call(this, sharedMemory);
576
+
577
+ this.update(iKeyPad);
578
+ this.oKeyPad = oKeyPad;
579
+ this.inner = true;
580
+ this.sharedMemory = sharedMemory;
581
+ }
582
+
583
+ HmacSha1.prototype = new Sha1();
584
+
585
+ HmacSha1.prototype.finalize = function () {
586
+ Sha1.prototype.finalize.call(this);
587
+ if (this.inner) {
588
+ this.inner = false;
589
+ var innerHash = this.array();
590
+ Sha1.call(this, this.sharedMemory);
591
+ this.update(this.oKeyPad);
592
+ this.update(innerHash);
593
+ Sha1.prototype.finalize.call(this);
594
+ }
595
+ };
596
+
597
+ /* 以下是内部实现需要的es模块化导出方法 */
598
+ const sha1 = createMethod();
599
+ const sha1_hmac = createHmacMethod();
600
+
601
+ exports.sha1 = sha1;
602
+ exports.sha1_hmac = sha1_hmac;
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ var sha256$1 = require('./sha256.cjs');
4
+
5
+ /**
6
+ * sha256 加密
7
+ * @param {String} str 字符串
8
+ * @returns {String} 返回加密后的字符串
9
+ */
10
+ function sha256(str) {
11
+ return sha256$1.sha256(str);
12
+ }
13
+
14
+ /**
15
+ * sha224 加密
16
+ * @param {String} str 字符串
17
+ * @returns {String} 返回加密后的字符串
18
+ */
19
+ function sha224(str) {
20
+ return sha256$1.sha224(str);
21
+ }
22
+
23
+ /**
24
+ * sha256_hmac 加密
25
+ * @param {String} str 字符串
26
+ * @param {String} key 秘钥
27
+ * @returns {String} 返回加密后的字符串
28
+ */
29
+ function sha256_hmac(str, key) {
30
+ return sha256$1.sha256_hmac(key, str);
31
+ }
32
+
33
+ /**
34
+ * sha224_hmac 加密
35
+ * @param {String} str 字符串
36
+ * @param {String} key 秘钥
37
+ * @returns {String} 返回加密后的字符串
38
+ */
39
+ function sha224_hmac(str, key) {
40
+ return sha256$1.sha224_hmac(key, str);
41
+ }
42
+
43
+ exports.sha224 = sha224;
44
+ exports.sha224_hmac = sha224_hmac;
45
+ exports.sha256 = sha256;
46
+ exports.sha256_hmac = sha256_hmac;