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