@ivujs/i-utils 1.1.14 → 1.1.16

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