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