@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,1050 @@
1
+ import * as index from '../base64/index.mjs';
2
+
3
+ const { encode, decode } = index;
4
+ /**
5
+ * 使用方法
6
+ * 实例化对象 new Des()
7
+ * 加密方法 encrypt(key,plaintext)
8
+ * 解密方法 decrypt(key,ciphertext)
9
+ * 示例---------------------------------------------------
10
+ * var Des = new Des();
11
+ * var key = 'custom key';
12
+ * var value = '需要加密的内容'
13
+ * var ciphertext = encrypt(key,value);//加密
14
+ * var plaintext = encrypt(key,ciphertext);//解密
15
+ */
16
+ function Des(key, value) {
17
+ this.key = key;
18
+ this.value = value;
19
+ }
20
+
21
+ /**
22
+ * @param {String} key 密钥
23
+ * @param {String} value 内容
24
+ * @param {String} type 类型 ->encrypt加密|decrypt解密
25
+ */
26
+ Des.prototype._DesCreate = function (key, value, type) {
27
+ var message = value;
28
+ if (type === "decrypt") {
29
+ var requestValue = "";
30
+ for (var i = value.substr(0, 2) == "0x" ? 2 : 0; i < value.length; i += 2) {
31
+ requestValue += String.fromCharCode(parseInt(value.substr(i, 2), 16));
32
+ }
33
+ message = requestValue;
34
+ }
35
+ var spfunction1 = new Array(
36
+ 0x1010400,
37
+ 0,
38
+ 0x10000,
39
+ 0x1010404,
40
+ 0x1010004,
41
+ 0x10404,
42
+ 0x4,
43
+ 0x10000,
44
+ 0x400,
45
+ 0x1010400,
46
+ 0x1010404,
47
+ 0x400,
48
+ 0x1000404,
49
+ 0x1010004,
50
+ 0x1000000,
51
+ 0x4,
52
+ 0x404,
53
+ 0x1000400,
54
+ 0x1000400,
55
+ 0x10400,
56
+ 0x10400,
57
+ 0x1010000,
58
+ 0x1010000,
59
+ 0x1000404,
60
+ 0x10004,
61
+ 0x1000004,
62
+ 0x1000004,
63
+ 0x10004,
64
+ 0,
65
+ 0x404,
66
+ 0x10404,
67
+ 0x1000000,
68
+ 0x10000,
69
+ 0x1010404,
70
+ 0x4,
71
+ 0x1010000,
72
+ 0x1010400,
73
+ 0x1000000,
74
+ 0x1000000,
75
+ 0x400,
76
+ 0x1010004,
77
+ 0x10000,
78
+ 0x10400,
79
+ 0x1000004,
80
+ 0x400,
81
+ 0x4,
82
+ 0x1000404,
83
+ 0x10404,
84
+ 0x1010404,
85
+ 0x10004,
86
+ 0x1010000,
87
+ 0x1000404,
88
+ 0x1000004,
89
+ 0x404,
90
+ 0x10404,
91
+ 0x1010400,
92
+ 0x404,
93
+ 0x1000400,
94
+ 0x1000400,
95
+ 0,
96
+ 0x10004,
97
+ 0x10400,
98
+ 0,
99
+ 0x1010004,
100
+ );
101
+ var spfunction2 = new Array(
102
+ -0x7fef7fe0,
103
+ -0x7fff8000,
104
+ 0x8000,
105
+ 0x108020,
106
+ 0x100000,
107
+ 0x20,
108
+ -0x7fefffe0,
109
+ -0x7fff7fe0,
110
+ -0x7fffffe0,
111
+ -0x7fef7fe0,
112
+ -0x7fef8000,
113
+ -0x80000000,
114
+ -0x7fff8000,
115
+ 0x100000,
116
+ 0x20,
117
+ -0x7fefffe0,
118
+ 0x108000,
119
+ 0x100020,
120
+ -0x7fff7fe0,
121
+ 0,
122
+ -0x80000000,
123
+ 0x8000,
124
+ 0x108020,
125
+ -0x7ff00000,
126
+ 0x100020,
127
+ -0x7fffffe0,
128
+ 0,
129
+ 0x108000,
130
+ 0x8020,
131
+ -0x7fef8000,
132
+ -0x7ff00000,
133
+ 0x8020,
134
+ 0,
135
+ 0x108020,
136
+ -0x7fefffe0,
137
+ 0x100000,
138
+ -0x7fff7fe0,
139
+ -0x7ff00000,
140
+ -0x7fef8000,
141
+ 0x8000,
142
+ -0x7ff00000,
143
+ -0x7fff8000,
144
+ 0x20,
145
+ -0x7fef7fe0,
146
+ 0x108020,
147
+ 0x20,
148
+ 0x8000,
149
+ -0x80000000,
150
+ 0x8020,
151
+ -0x7fef8000,
152
+ 0x100000,
153
+ -0x7fffffe0,
154
+ 0x100020,
155
+ -0x7fff7fe0,
156
+ -0x7fffffe0,
157
+ 0x100020,
158
+ 0x108000,
159
+ 0,
160
+ -0x7fff8000,
161
+ 0x8020,
162
+ -0x80000000,
163
+ -0x7fefffe0,
164
+ -0x7fef7fe0,
165
+ 0x108000,
166
+ );
167
+ var spfunction3 = new Array(
168
+ 0x208,
169
+ 0x8020200,
170
+ 0,
171
+ 0x8020008,
172
+ 0x8000200,
173
+ 0,
174
+ 0x20208,
175
+ 0x8000200,
176
+ 0x20008,
177
+ 0x8000008,
178
+ 0x8000008,
179
+ 0x20000,
180
+ 0x8020208,
181
+ 0x20008,
182
+ 0x8020000,
183
+ 0x208,
184
+ 0x8000000,
185
+ 0x8,
186
+ 0x8020200,
187
+ 0x200,
188
+ 0x20200,
189
+ 0x8020000,
190
+ 0x8020008,
191
+ 0x20208,
192
+ 0x8000208,
193
+ 0x20200,
194
+ 0x20000,
195
+ 0x8000208,
196
+ 0x8,
197
+ 0x8020208,
198
+ 0x200,
199
+ 0x8000000,
200
+ 0x8020200,
201
+ 0x8000000,
202
+ 0x20008,
203
+ 0x208,
204
+ 0x20000,
205
+ 0x8020200,
206
+ 0x8000200,
207
+ 0,
208
+ 0x200,
209
+ 0x20008,
210
+ 0x8020208,
211
+ 0x8000200,
212
+ 0x8000008,
213
+ 0x200,
214
+ 0,
215
+ 0x8020008,
216
+ 0x8000208,
217
+ 0x20000,
218
+ 0x8000000,
219
+ 0x8020208,
220
+ 0x8,
221
+ 0x20208,
222
+ 0x20200,
223
+ 0x8000008,
224
+ 0x8020000,
225
+ 0x8000208,
226
+ 0x208,
227
+ 0x8020000,
228
+ 0x20208,
229
+ 0x8,
230
+ 0x8020008,
231
+ 0x20200,
232
+ );
233
+ var spfunction4 = new Array(
234
+ 0x802001,
235
+ 0x2081,
236
+ 0x2081,
237
+ 0x80,
238
+ 0x802080,
239
+ 0x800081,
240
+ 0x800001,
241
+ 0x2001,
242
+ 0,
243
+ 0x802000,
244
+ 0x802000,
245
+ 0x802081,
246
+ 0x81,
247
+ 0,
248
+ 0x800080,
249
+ 0x800001,
250
+ 0x1,
251
+ 0x2000,
252
+ 0x800000,
253
+ 0x802001,
254
+ 0x80,
255
+ 0x800000,
256
+ 0x2001,
257
+ 0x2080,
258
+ 0x800081,
259
+ 0x1,
260
+ 0x2080,
261
+ 0x800080,
262
+ 0x2000,
263
+ 0x802080,
264
+ 0x802081,
265
+ 0x81,
266
+ 0x800080,
267
+ 0x800001,
268
+ 0x802000,
269
+ 0x802081,
270
+ 0x81,
271
+ 0,
272
+ 0,
273
+ 0x802000,
274
+ 0x2080,
275
+ 0x800080,
276
+ 0x800081,
277
+ 0x1,
278
+ 0x802001,
279
+ 0x2081,
280
+ 0x2081,
281
+ 0x80,
282
+ 0x802081,
283
+ 0x81,
284
+ 0x1,
285
+ 0x2000,
286
+ 0x800001,
287
+ 0x2001,
288
+ 0x802080,
289
+ 0x800081,
290
+ 0x2001,
291
+ 0x2080,
292
+ 0x800000,
293
+ 0x802001,
294
+ 0x80,
295
+ 0x800000,
296
+ 0x2000,
297
+ 0x802080,
298
+ );
299
+ var spfunction5 = new Array(
300
+ 0x100,
301
+ 0x2080100,
302
+ 0x2080000,
303
+ 0x42000100,
304
+ 0x80000,
305
+ 0x100,
306
+ 0x40000000,
307
+ 0x2080000,
308
+ 0x40080100,
309
+ 0x80000,
310
+ 0x2000100,
311
+ 0x40080100,
312
+ 0x42000100,
313
+ 0x42080000,
314
+ 0x80100,
315
+ 0x40000000,
316
+ 0x2000000,
317
+ 0x40080000,
318
+ 0x40080000,
319
+ 0,
320
+ 0x40000100,
321
+ 0x42080100,
322
+ 0x42080100,
323
+ 0x2000100,
324
+ 0x42080000,
325
+ 0x40000100,
326
+ 0,
327
+ 0x42000000,
328
+ 0x2080100,
329
+ 0x2000000,
330
+ 0x42000000,
331
+ 0x80100,
332
+ 0x80000,
333
+ 0x42000100,
334
+ 0x100,
335
+ 0x2000000,
336
+ 0x40000000,
337
+ 0x2080000,
338
+ 0x42000100,
339
+ 0x40080100,
340
+ 0x2000100,
341
+ 0x40000000,
342
+ 0x42080000,
343
+ 0x2080100,
344
+ 0x40080100,
345
+ 0x100,
346
+ 0x2000000,
347
+ 0x42080000,
348
+ 0x42080100,
349
+ 0x80100,
350
+ 0x42000000,
351
+ 0x42080100,
352
+ 0x2080000,
353
+ 0,
354
+ 0x40080000,
355
+ 0x42000000,
356
+ 0x80100,
357
+ 0x2000100,
358
+ 0x40000100,
359
+ 0x80000,
360
+ 0,
361
+ 0x40080000,
362
+ 0x2080100,
363
+ 0x40000100,
364
+ );
365
+ var spfunction6 = new Array(
366
+ 0x20000010,
367
+ 0x20400000,
368
+ 0x4000,
369
+ 0x20404010,
370
+ 0x20400000,
371
+ 0x10,
372
+ 0x20404010,
373
+ 0x400000,
374
+ 0x20004000,
375
+ 0x404010,
376
+ 0x400000,
377
+ 0x20000010,
378
+ 0x400010,
379
+ 0x20004000,
380
+ 0x20000000,
381
+ 0x4010,
382
+ 0,
383
+ 0x400010,
384
+ 0x20004010,
385
+ 0x4000,
386
+ 0x404000,
387
+ 0x20004010,
388
+ 0x10,
389
+ 0x20400010,
390
+ 0x20400010,
391
+ 0,
392
+ 0x404010,
393
+ 0x20404000,
394
+ 0x4010,
395
+ 0x404000,
396
+ 0x20404000,
397
+ 0x20000000,
398
+ 0x20004000,
399
+ 0x10,
400
+ 0x20400010,
401
+ 0x404000,
402
+ 0x20404010,
403
+ 0x400000,
404
+ 0x4010,
405
+ 0x20000010,
406
+ 0x400000,
407
+ 0x20004000,
408
+ 0x20000000,
409
+ 0x4010,
410
+ 0x20000010,
411
+ 0x20404010,
412
+ 0x404000,
413
+ 0x20400000,
414
+ 0x404010,
415
+ 0x20404000,
416
+ 0,
417
+ 0x20400010,
418
+ 0x10,
419
+ 0x4000,
420
+ 0x20400000,
421
+ 0x404010,
422
+ 0x4000,
423
+ 0x400010,
424
+ 0x20004010,
425
+ 0,
426
+ 0x20404000,
427
+ 0x20000000,
428
+ 0x400010,
429
+ 0x20004010,
430
+ );
431
+ var spfunction7 = new Array(
432
+ 0x200000,
433
+ 0x4200002,
434
+ 0x4000802,
435
+ 0,
436
+ 0x800,
437
+ 0x4000802,
438
+ 0x200802,
439
+ 0x4200800,
440
+ 0x4200802,
441
+ 0x200000,
442
+ 0,
443
+ 0x4000002,
444
+ 0x2,
445
+ 0x4000000,
446
+ 0x4200002,
447
+ 0x802,
448
+ 0x4000800,
449
+ 0x200802,
450
+ 0x200002,
451
+ 0x4000800,
452
+ 0x4000002,
453
+ 0x4200000,
454
+ 0x4200800,
455
+ 0x200002,
456
+ 0x4200000,
457
+ 0x800,
458
+ 0x802,
459
+ 0x4200802,
460
+ 0x200800,
461
+ 0x2,
462
+ 0x4000000,
463
+ 0x200800,
464
+ 0x4000000,
465
+ 0x200800,
466
+ 0x200000,
467
+ 0x4000802,
468
+ 0x4000802,
469
+ 0x4200002,
470
+ 0x4200002,
471
+ 0x2,
472
+ 0x200002,
473
+ 0x4000000,
474
+ 0x4000800,
475
+ 0x200000,
476
+ 0x4200800,
477
+ 0x802,
478
+ 0x200802,
479
+ 0x4200800,
480
+ 0x802,
481
+ 0x4000002,
482
+ 0x4200802,
483
+ 0x4200000,
484
+ 0x200800,
485
+ 0,
486
+ 0x2,
487
+ 0x4200802,
488
+ 0,
489
+ 0x200802,
490
+ 0x4200000,
491
+ 0x800,
492
+ 0x4000002,
493
+ 0x4000800,
494
+ 0x800,
495
+ 0x200002,
496
+ );
497
+ var spfunction8 = new Array(
498
+ 0x10001040,
499
+ 0x1000,
500
+ 0x40000,
501
+ 0x10041040,
502
+ 0x10000000,
503
+ 0x10001040,
504
+ 0x40,
505
+ 0x10000000,
506
+ 0x40040,
507
+ 0x10040000,
508
+ 0x10041040,
509
+ 0x41000,
510
+ 0x10041000,
511
+ 0x41040,
512
+ 0x1000,
513
+ 0x40,
514
+ 0x10040000,
515
+ 0x10000040,
516
+ 0x10001000,
517
+ 0x1040,
518
+ 0x41000,
519
+ 0x40040,
520
+ 0x10040040,
521
+ 0x10041000,
522
+ 0x1040,
523
+ 0,
524
+ 0,
525
+ 0x10040040,
526
+ 0x10000040,
527
+ 0x10001000,
528
+ 0x41040,
529
+ 0x40000,
530
+ 0x41040,
531
+ 0x40000,
532
+ 0x10041000,
533
+ 0x1000,
534
+ 0x40,
535
+ 0x10040040,
536
+ 0x1000,
537
+ 0x41040,
538
+ 0x10001000,
539
+ 0x40,
540
+ 0x10000040,
541
+ 0x10040000,
542
+ 0x10040040,
543
+ 0x10000000,
544
+ 0x40000,
545
+ 0x10001040,
546
+ 0,
547
+ 0x10041040,
548
+ 0x40040,
549
+ 0x10000040,
550
+ 0x10040000,
551
+ 0x10001000,
552
+ 0x10001040,
553
+ 0,
554
+ 0x10041040,
555
+ 0x41000,
556
+ 0x41000,
557
+ 0x1040,
558
+ 0x1040,
559
+ 0x40040,
560
+ 0x10000000,
561
+ 0x10041000,
562
+ );
563
+
564
+ var keys = this._DesCreateKeys(key);
565
+ var m = 0,
566
+ i,
567
+ j,
568
+ temp,
569
+ right1,
570
+ right2,
571
+ left,
572
+ right,
573
+ looping;
574
+ var endloop, loopinc;
575
+ var len = message.length;
576
+ var chunk = 0;
577
+
578
+ var iterations = keys.length == 32 ? 3 : 9;
579
+ if (iterations == 3) {
580
+ looping = type === "encrypt" ? new Array(0, 32, 2) : new Array(30, -2, -2);
581
+ } else {
582
+ looping =
583
+ type === "encrypt" ? new Array(0, 32, 2, 62, 30, -2, 64, 96, 2) : new Array(94, 62, -2, 32, 64, 2, 30, -2, -2);
584
+ }
585
+ var result = "";
586
+ var tempresult = "";
587
+ while (m < len) {
588
+ left =
589
+ (message.charCodeAt(m++) << 24) |
590
+ (message.charCodeAt(m++) << 16) |
591
+ (message.charCodeAt(m++) << 8) |
592
+ message.charCodeAt(m++);
593
+ right =
594
+ (message.charCodeAt(m++) << 24) |
595
+ (message.charCodeAt(m++) << 16) |
596
+ (message.charCodeAt(m++) << 8) |
597
+ message.charCodeAt(m++);
598
+
599
+ temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;
600
+ right ^= temp;
601
+ left ^= temp << 4;
602
+ temp = ((left >>> 16) ^ right) & 0x0000ffff;
603
+ right ^= temp;
604
+ left ^= temp << 16;
605
+ temp = ((right >>> 2) ^ left) & 0x33333333;
606
+ left ^= temp;
607
+ right ^= temp << 2;
608
+ temp = ((right >>> 8) ^ left) & 0x00ff00ff;
609
+ left ^= temp;
610
+ right ^= temp << 8;
611
+ temp = ((left >>> 1) ^ right) & 0x55555555;
612
+ right ^= temp;
613
+ left ^= temp << 1;
614
+
615
+ left = (left << 1) | (left >>> 31);
616
+ right = (right << 1) | (right >>> 31);
617
+
618
+ for (j = 0; j < iterations; j += 3) {
619
+ endloop = looping[j + 1];
620
+ loopinc = looping[j + 2];
621
+ for (i = looping[j]; i != endloop; i += loopinc) {
622
+ right1 = right ^ keys[i];
623
+ right2 = ((right >>> 4) | (right << 28)) ^ keys[i + 1];
624
+ temp = left;
625
+ left = right;
626
+ right =
627
+ temp ^
628
+ (spfunction2[(right1 >>> 24) & 0x3f] |
629
+ spfunction4[(right1 >>> 16) & 0x3f] |
630
+ spfunction6[(right1 >>> 8) & 0x3f] |
631
+ spfunction8[right1 & 0x3f] |
632
+ spfunction1[(right2 >>> 24) & 0x3f] |
633
+ spfunction3[(right2 >>> 16) & 0x3f] |
634
+ spfunction5[(right2 >>> 8) & 0x3f] |
635
+ spfunction7[right2 & 0x3f]);
636
+ }
637
+ temp = left;
638
+ left = right;
639
+ right = temp;
640
+ }
641
+
642
+ left = (left >>> 1) | (left << 31);
643
+ right = (right >>> 1) | (right << 31);
644
+
645
+ temp = ((left >>> 1) ^ right) & 0x55555555;
646
+ right ^= temp;
647
+ left ^= temp << 1;
648
+ temp = ((right >>> 8) ^ left) & 0x00ff00ff;
649
+ left ^= temp;
650
+ right ^= temp << 8;
651
+ temp = ((right >>> 2) ^ left) & 0x33333333;
652
+ left ^= temp;
653
+ right ^= temp << 2;
654
+ temp = ((left >>> 16) ^ right) & 0x0000ffff;
655
+ right ^= temp;
656
+ left ^= temp << 16;
657
+ temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;
658
+ right ^= temp;
659
+ left ^= temp << 4;
660
+
661
+ tempresult += String.fromCharCode(
662
+ left >>> 24,
663
+ (left >>> 16) & 0xff,
664
+ (left >>> 8) & 0xff,
665
+ left & 0xff,
666
+ right >>> 24,
667
+ (right >>> 16) & 0xff,
668
+ (right >>> 8) & 0xff,
669
+ right & 0xff,
670
+ );
671
+
672
+ chunk += 8;
673
+ if (chunk == 512) {
674
+ result += tempresult;
675
+ tempresult = "";
676
+ chunk = 0;
677
+ }
678
+ }
679
+ var resultTempresult = result + tempresult;
680
+ if (type === "encrypt") {
681
+ var resultCiphertext = "";
682
+ var hexes = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
683
+ for (var i = 0; i < resultTempresult.length; i++) {
684
+ resultCiphertext += hexes[resultTempresult.charCodeAt(i) >> 4] + hexes[resultTempresult.charCodeAt(i) & 0xf];
685
+ }
686
+ return resultCiphertext;
687
+ }
688
+ return result + tempresult;
689
+ };
690
+ Des.prototype._DesCreateKeys = function (key) {
691
+ var pc2bytes0 = new Array(
692
+ 0,
693
+ 0x4,
694
+ 0x20000000,
695
+ 0x20000004,
696
+ 0x10000,
697
+ 0x10004,
698
+ 0x20010000,
699
+ 0x20010004,
700
+ 0x200,
701
+ 0x204,
702
+ 0x20000200,
703
+ 0x20000204,
704
+ 0x10200,
705
+ 0x10204,
706
+ 0x20010200,
707
+ 0x20010204,
708
+ );
709
+ var pc2bytes1 = new Array(
710
+ 0,
711
+ 0x1,
712
+ 0x100000,
713
+ 0x100001,
714
+ 0x4000000,
715
+ 0x4000001,
716
+ 0x4100000,
717
+ 0x4100001,
718
+ 0x100,
719
+ 0x101,
720
+ 0x100100,
721
+ 0x100101,
722
+ 0x4000100,
723
+ 0x4000101,
724
+ 0x4100100,
725
+ 0x4100101,
726
+ );
727
+ var pc2bytes2 = new Array(
728
+ 0,
729
+ 0x8,
730
+ 0x800,
731
+ 0x808,
732
+ 0x1000000,
733
+ 0x1000008,
734
+ 0x1000800,
735
+ 0x1000808,
736
+ 0,
737
+ 0x8,
738
+ 0x800,
739
+ 0x808,
740
+ 0x1000000,
741
+ 0x1000008,
742
+ 0x1000800,
743
+ 0x1000808,
744
+ );
745
+ var pc2bytes3 = new Array(
746
+ 0,
747
+ 0x200000,
748
+ 0x8000000,
749
+ 0x8200000,
750
+ 0x2000,
751
+ 0x202000,
752
+ 0x8002000,
753
+ 0x8202000,
754
+ 0x20000,
755
+ 0x220000,
756
+ 0x8020000,
757
+ 0x8220000,
758
+ 0x22000,
759
+ 0x222000,
760
+ 0x8022000,
761
+ 0x8222000,
762
+ );
763
+ var pc2bytes4 = new Array(
764
+ 0,
765
+ 0x40000,
766
+ 0x10,
767
+ 0x40010,
768
+ 0,
769
+ 0x40000,
770
+ 0x10,
771
+ 0x40010,
772
+ 0x1000,
773
+ 0x41000,
774
+ 0x1010,
775
+ 0x41010,
776
+ 0x1000,
777
+ 0x41000,
778
+ 0x1010,
779
+ 0x41010,
780
+ );
781
+ var pc2bytes5 = new Array(
782
+ 0,
783
+ 0x400,
784
+ 0x20,
785
+ 0x420,
786
+ 0,
787
+ 0x400,
788
+ 0x20,
789
+ 0x420,
790
+ 0x2000000,
791
+ 0x2000400,
792
+ 0x2000020,
793
+ 0x2000420,
794
+ 0x2000000,
795
+ 0x2000400,
796
+ 0x2000020,
797
+ 0x2000420,
798
+ );
799
+ var pc2bytes6 = new Array(
800
+ 0,
801
+ 0x10000000,
802
+ 0x80000,
803
+ 0x10080000,
804
+ 0x2,
805
+ 0x10000002,
806
+ 0x80002,
807
+ 0x10080002,
808
+ 0,
809
+ 0x10000000,
810
+ 0x80000,
811
+ 0x10080000,
812
+ 0x2,
813
+ 0x10000002,
814
+ 0x80002,
815
+ 0x10080002,
816
+ );
817
+ var pc2bytes7 = new Array(
818
+ 0,
819
+ 0x10000,
820
+ 0x800,
821
+ 0x10800,
822
+ 0x20000000,
823
+ 0x20010000,
824
+ 0x20000800,
825
+ 0x20010800,
826
+ 0x20000,
827
+ 0x30000,
828
+ 0x20800,
829
+ 0x30800,
830
+ 0x20020000,
831
+ 0x20030000,
832
+ 0x20020800,
833
+ 0x20030800,
834
+ );
835
+ var pc2bytes8 = new Array(
836
+ 0,
837
+ 0x40000,
838
+ 0,
839
+ 0x40000,
840
+ 0x2,
841
+ 0x40002,
842
+ 0x2,
843
+ 0x40002,
844
+ 0x2000000,
845
+ 0x2040000,
846
+ 0x2000000,
847
+ 0x2040000,
848
+ 0x2000002,
849
+ 0x2040002,
850
+ 0x2000002,
851
+ 0x2040002,
852
+ );
853
+ var pc2bytes9 = new Array(
854
+ 0,
855
+ 0x10000000,
856
+ 0x8,
857
+ 0x10000008,
858
+ 0,
859
+ 0x10000000,
860
+ 0x8,
861
+ 0x10000008,
862
+ 0x400,
863
+ 0x10000400,
864
+ 0x408,
865
+ 0x10000408,
866
+ 0x400,
867
+ 0x10000400,
868
+ 0x408,
869
+ 0x10000408,
870
+ );
871
+ var pc2bytes10 = new Array(
872
+ 0,
873
+ 0x20,
874
+ 0,
875
+ 0x20,
876
+ 0x100000,
877
+ 0x100020,
878
+ 0x100000,
879
+ 0x100020,
880
+ 0x2000,
881
+ 0x2020,
882
+ 0x2000,
883
+ 0x2020,
884
+ 0x102000,
885
+ 0x102020,
886
+ 0x102000,
887
+ 0x102020,
888
+ );
889
+ var pc2bytes11 = new Array(
890
+ 0,
891
+ 0x1000000,
892
+ 0x200,
893
+ 0x1000200,
894
+ 0x200000,
895
+ 0x1200000,
896
+ 0x200200,
897
+ 0x1200200,
898
+ 0x4000000,
899
+ 0x5000000,
900
+ 0x4000200,
901
+ 0x5000200,
902
+ 0x4200000,
903
+ 0x5200000,
904
+ 0x4200200,
905
+ 0x5200200,
906
+ );
907
+ var pc2bytes12 = new Array(
908
+ 0,
909
+ 0x1000,
910
+ 0x8000000,
911
+ 0x8001000,
912
+ 0x80000,
913
+ 0x81000,
914
+ 0x8080000,
915
+ 0x8081000,
916
+ 0x10,
917
+ 0x1010,
918
+ 0x8000010,
919
+ 0x8001010,
920
+ 0x80010,
921
+ 0x81010,
922
+ 0x8080010,
923
+ 0x8081010,
924
+ );
925
+ var pc2bytes13 = new Array(
926
+ 0,
927
+ 0x4,
928
+ 0x100,
929
+ 0x104,
930
+ 0,
931
+ 0x4,
932
+ 0x100,
933
+ 0x104,
934
+ 0x1,
935
+ 0x5,
936
+ 0x101,
937
+ 0x105,
938
+ 0x1,
939
+ 0x5,
940
+ 0x101,
941
+ 0x105,
942
+ );
943
+
944
+ var iterations = key.length > 8 ? 3 : 1;
945
+ var keys = new Array(32 * iterations);
946
+ var shifts = new Array(0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0);
947
+ var lefttemp,
948
+ righttemp,
949
+ m = 0,
950
+ n = 0,
951
+ temp;
952
+
953
+ for (var j = 0; j < iterations; j++) {
954
+ var left =
955
+ (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++);
956
+ var right =
957
+ (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++);
958
+
959
+ temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;
960
+ right ^= temp;
961
+ left ^= temp << 4;
962
+ temp = ((right >>> -16) ^ left) & 0x0000ffff;
963
+ left ^= temp;
964
+ right ^= temp << -16;
965
+ temp = ((left >>> 2) ^ right) & 0x33333333;
966
+ right ^= temp;
967
+ left ^= temp << 2;
968
+ temp = ((right >>> -16) ^ left) & 0x0000ffff;
969
+ left ^= temp;
970
+ right ^= temp << -16;
971
+ temp = ((left >>> 1) ^ right) & 0x55555555;
972
+ right ^= temp;
973
+ left ^= temp << 1;
974
+ temp = ((right >>> 8) ^ left) & 0x00ff00ff;
975
+ left ^= temp;
976
+ right ^= temp << 8;
977
+ temp = ((left >>> 1) ^ right) & 0x55555555;
978
+ right ^= temp;
979
+ left ^= temp << 1;
980
+
981
+ temp = (left << 8) | ((right >>> 20) & 0x000000f0);
982
+ left = (right << 24) | ((right << 8) & 0xff0000) | ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0);
983
+ right = temp;
984
+
985
+ for (var i = 0; i < shifts.length; i++) {
986
+ if (shifts[i]) {
987
+ left = (left << 2) | (left >>> 26);
988
+ right = (right << 2) | (right >>> 26);
989
+ } else {
990
+ left = (left << 1) | (left >>> 27);
991
+ right = (right << 1) | (right >>> 27);
992
+ }
993
+ left &= -0xf;
994
+ right &= -0xf;
995
+
996
+ lefttemp =
997
+ pc2bytes0[left >>> 28] |
998
+ pc2bytes1[(left >>> 24) & 0xf] |
999
+ pc2bytes2[(left >>> 20) & 0xf] |
1000
+ pc2bytes3[(left >>> 16) & 0xf] |
1001
+ pc2bytes4[(left >>> 12) & 0xf] |
1002
+ pc2bytes5[(left >>> 8) & 0xf] |
1003
+ pc2bytes6[(left >>> 4) & 0xf];
1004
+ righttemp =
1005
+ pc2bytes7[right >>> 28] |
1006
+ pc2bytes8[(right >>> 24) & 0xf] |
1007
+ pc2bytes9[(right >>> 20) & 0xf] |
1008
+ pc2bytes10[(right >>> 16) & 0xf] |
1009
+ pc2bytes11[(right >>> 12) & 0xf] |
1010
+ pc2bytes12[(right >>> 8) & 0xf] |
1011
+ pc2bytes13[(right >>> 4) & 0xf];
1012
+ temp = ((righttemp >>> 16) ^ lefttemp) & 0x0000ffff;
1013
+ keys[n++] = lefttemp ^ temp;
1014
+ keys[n++] = righttemp ^ (temp << 16);
1015
+ }
1016
+ }
1017
+ return keys;
1018
+ };
1019
+ /*
1020
+ ------------------------------------------------------------------------------------
1021
+ 以上方法对象的私有方法
1022
+ 为了解决中文乱码
1023
+ 使用base64先加密,再用des加密
1024
+ 同理,解密时先用deds解密,再使用base64解密
1025
+ ------------------------------------------------------------------------------------
1026
+ */
1027
+ /**
1028
+ * 加密
1029
+ * @param {String} key 密钥
1030
+ * @param {String} plaintext 明文
1031
+ * @return {String} ciphertext 密文
1032
+ */
1033
+ Des.prototype.encrypt = function (key, plaintext) {
1034
+ var encodedString = encode(plaintext);
1035
+ var ciphertext = this._DesCreate(key, encodedString, "encrypt");
1036
+ return ciphertext;
1037
+ };
1038
+ /**
1039
+ * 解密
1040
+ * @param {String} key 密钥
1041
+ * @param {String} ciphertext 密文
1042
+ * @return {String} plaintext 明文
1043
+ */
1044
+ Des.prototype.decrypt = function (key, ciphertext) {
1045
+ var decryptText = this._DesCreate(key, ciphertext, "decrypt"); // Des解密
1046
+ var plaintext = decode(decryptText); // base64解密
1047
+ return plaintext;
1048
+ };
1049
+
1050
+ export { Des as default };