@ivujs/i-utils 1.1.16 → 1.1.18

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/README.md +21 -19
  2. package/dist/cjs/index.cjs +5 -400
  3. package/dist/es/index.d.ts +1 -26
  4. package/dist/es/index.mjs +2 -55
  5. package/dist/index.d.ts +11 -2851
  6. package/dist/lib/index.full.umd.js +33 -14240
  7. package/dist/lib/index.full.umd.min.js +2 -64
  8. package/dist/lib/index.full.umd.min.js.map +1 -1
  9. package/dist/resolver/auto-imports.cjs +1 -337
  10. package/dist/resolver/auto-imports.mjs +1 -337
  11. package/dist/resolver/index.cjs +1 -1
  12. package/dist/resolver/index.d.ts +1 -1
  13. package/dist/resolver/index.mjs +1 -1
  14. package/package.json +6 -18
  15. package/dist/cjs/ID-card/index.cjs +0 -87
  16. package/dist/cjs/array/index.cjs +0 -470
  17. package/dist/cjs/clipboard/index.cjs +0 -128
  18. package/dist/cjs/color/index.cjs +0 -193
  19. package/dist/cjs/constants/date.cjs +0 -178
  20. package/dist/cjs/constants/id-card.cjs +0 -52
  21. package/dist/cjs/constants/keycode.cjs +0 -117
  22. package/dist/cjs/constants/lang.cjs +0 -13
  23. package/dist/cjs/constants/math.cjs +0 -13
  24. package/dist/cjs/constants/regexp.cjs +0 -53
  25. package/dist/cjs/constants/sort.cjs +0 -15
  26. package/dist/cjs/cookie/index.cjs +0 -70
  27. package/dist/cjs/crypto/aes/aes.cjs +0 -480
  28. package/dist/cjs/crypto/aes/index.cjs +0 -27
  29. package/dist/cjs/crypto/base32/base32.cjs +0 -357
  30. package/dist/cjs/crypto/base32/index.cjs +0 -41
  31. package/dist/cjs/crypto/base64/base64.cjs +0 -348
  32. package/dist/cjs/crypto/base64/index.cjs +0 -59
  33. package/dist/cjs/crypto/des/des.cjs +0 -257
  34. package/dist/cjs/crypto/des/index.cjs +0 -28
  35. package/dist/cjs/crypto/md5/index.cjs +0 -24
  36. package/dist/cjs/crypto/md5/md5.cjs +0 -897
  37. package/dist/cjs/crypto/sha/sha1/index.cjs +0 -24
  38. package/dist/cjs/crypto/sha/sha1/sha1.cjs +0 -529
  39. package/dist/cjs/crypto/sha/sha256/index.cjs +0 -43
  40. package/dist/cjs/crypto/sha/sha256/sha256.cjs +0 -595
  41. package/dist/cjs/crypto/sha/sha3/index.cjs +0 -41
  42. package/dist/cjs/crypto/sha/sha3/sha3.cjs +0 -624
  43. package/dist/cjs/crypto/sha/sha512/index.cjs +0 -81
  44. package/dist/cjs/crypto/sha/sha512/sha512.cjs +0 -950
  45. package/dist/cjs/crypto/sm/lib/asn1.cjs +0 -149
  46. package/dist/cjs/crypto/sm/lib/ec.cjs +0 -315
  47. package/dist/cjs/crypto/sm/lib/jsbn.cjs +0 -1608
  48. package/dist/cjs/crypto/sm/lib/sm3.cjs +0 -158
  49. package/dist/cjs/crypto/sm/lib/utils.cjs +0 -170
  50. package/dist/cjs/crypto/sm/sm2/index.cjs +0 -112
  51. package/dist/cjs/crypto/sm/sm2/sm2.cjs +0 -231
  52. package/dist/cjs/crypto/sm/sm3/index.cjs +0 -15
  53. package/dist/cjs/crypto/sm/sm3/sm3.cjs +0 -93
  54. package/dist/cjs/crypto/sm/sm4/index.cjs +0 -27
  55. package/dist/cjs/crypto/sm/sm4/sm4.cjs +0 -327
  56. package/dist/cjs/crypto/tea/index.cjs +0 -25
  57. package/dist/cjs/crypto/tea/tea.cjs +0 -187
  58. package/dist/cjs/date/index.cjs +0 -1266
  59. package/dist/cjs/desensitized/index.cjs +0 -75
  60. package/dist/cjs/device/index.cjs +0 -151
  61. package/dist/cjs/dom/index.cjs +0 -129
  62. package/dist/cjs/file/index.cjs +0 -333
  63. package/dist/cjs/function/index.cjs +0 -69
  64. package/dist/cjs/keycode/index.cjs +0 -33
  65. package/dist/cjs/math/index.cjs +0 -278
  66. package/dist/cjs/number/index.cjs +0 -31
  67. package/dist/cjs/object/index.cjs +0 -272
  68. package/dist/cjs/pagination/index.cjs +0 -131
  69. package/dist/cjs/random/index.cjs +0 -24
  70. package/dist/cjs/regexp/index.cjs +0 -100
  71. package/dist/cjs/storage/index.cjs +0 -11
  72. package/dist/cjs/storage/localStorage.cjs +0 -37
  73. package/dist/cjs/storage/sessionStorage.cjs +0 -37
  74. package/dist/cjs/string/index.cjs +0 -358
  75. package/dist/cjs/url/index.cjs +0 -258
  76. package/dist/cjs/validate/index.cjs +0 -468
  77. package/dist/cjs/weapp/index.cjs +0 -142
  78. package/dist/es/ID-card/index.d.ts +0 -31
  79. package/dist/es/ID-card/index.mjs +0 -81
  80. package/dist/es/array/index.d.ts +0 -203
  81. package/dist/es/array/index.mjs +0 -441
  82. package/dist/es/clipboard/index.d.ts +0 -29
  83. package/dist/es/clipboard/index.mjs +0 -122
  84. package/dist/es/color/index.d.ts +0 -52
  85. package/dist/es/color/index.mjs +0 -183
  86. package/dist/es/constants/date.d.ts +0 -174
  87. package/dist/es/constants/date.mjs +0 -176
  88. package/dist/es/constants/id-card.d.ts +0 -43
  89. package/dist/es/constants/id-card.mjs +0 -50
  90. package/dist/es/constants/index.d.ts +0 -7
  91. package/dist/es/constants/keycode.d.ts +0 -103
  92. package/dist/es/constants/keycode.mjs +0 -115
  93. package/dist/es/constants/lang.d.ts +0 -4
  94. package/dist/es/constants/lang.mjs +0 -11
  95. package/dist/es/constants/math.d.ts +0 -4
  96. package/dist/es/constants/math.mjs +0 -11
  97. package/dist/es/constants/regexp.d.ts +0 -24
  98. package/dist/es/constants/regexp.mjs +0 -51
  99. package/dist/es/constants/sort.d.ts +0 -5
  100. package/dist/es/constants/sort.mjs +0 -13
  101. package/dist/es/cookie/index.d.ts +0 -29
  102. package/dist/es/cookie/index.mjs +0 -64
  103. package/dist/es/crypto/aes/aes.d.ts +0 -156
  104. package/dist/es/crypto/aes/aes.mjs +0 -478
  105. package/dist/es/crypto/aes/index.d.ts +0 -16
  106. package/dist/es/crypto/aes/index.mjs +0 -24
  107. package/dist/es/crypto/base32/base32.d.ts +0 -3
  108. package/dist/es/crypto/base32/base32.mjs +0 -353
  109. package/dist/es/crypto/base32/index.d.ts +0 -24
  110. package/dist/es/crypto/base32/index.mjs +0 -36
  111. package/dist/es/crypto/base64/base64.d.ts +0 -5
  112. package/dist/es/crypto/base64/base64.mjs +0 -342
  113. package/dist/es/crypto/base64/index.d.ts +0 -36
  114. package/dist/es/crypto/base64/index.mjs +0 -52
  115. package/dist/es/crypto/des/des.d.ts +0 -52
  116. package/dist/es/crypto/des/des.mjs +0 -255
  117. package/dist/es/crypto/des/index.d.ts +0 -14
  118. package/dist/es/crypto/des/index.mjs +0 -25
  119. package/dist/es/crypto/index.d.ts +0 -8
  120. package/dist/es/crypto/md5/index.d.ts +0 -13
  121. package/dist/es/crypto/md5/index.mjs +0 -21
  122. package/dist/es/crypto/md5/md5.d.ts +0 -144
  123. package/dist/es/crypto/md5/md5.mjs +0 -894
  124. package/dist/es/crypto/sha/index.d.ts +0 -4
  125. package/dist/es/crypto/sha/sha1/index.d.ts +0 -13
  126. package/dist/es/crypto/sha/sha1/index.mjs +0 -21
  127. package/dist/es/crypto/sha/sha1/sha1.d.ts +0 -2
  128. package/dist/es/crypto/sha/sha1/sha1.mjs +0 -526
  129. package/dist/es/crypto/sha/sha256/index.d.ts +0 -26
  130. package/dist/es/crypto/sha/sha256/index.mjs +0 -38
  131. package/dist/es/crypto/sha/sha256/sha256.d.ts +0 -4
  132. package/dist/es/crypto/sha/sha256/sha256.mjs +0 -590
  133. package/dist/es/crypto/sha/sha3/index.d.ts +0 -24
  134. package/dist/es/crypto/sha/sha3/index.mjs +0 -36
  135. package/dist/es/crypto/sha/sha3/sha3.d.ts +0 -4
  136. package/dist/es/crypto/sha/sha3/sha3.mjs +0 -619
  137. package/dist/es/crypto/sha/sha512/index.d.ts +0 -52
  138. package/dist/es/crypto/sha/sha512/index.mjs +0 -72
  139. package/dist/es/crypto/sha/sha512/sha512.d.ts +0 -8
  140. package/dist/es/crypto/sha/sha512/sha512.mjs +0 -941
  141. package/dist/es/crypto/sm/index.d.ts +0 -3
  142. package/dist/es/crypto/sm/lib/asn1.d.ts +0 -12
  143. package/dist/es/crypto/sm/lib/asn1.mjs +0 -146
  144. package/dist/es/crypto/sm/lib/ec.d.ts +0 -126
  145. package/dist/es/crypto/sm/lib/ec.mjs +0 -312
  146. package/dist/es/crypto/sm/lib/jsbn.d.ts +0 -198
  147. package/dist/es/crypto/sm/lib/jsbn.mjs +0 -1605
  148. package/dist/es/crypto/sm/lib/sm3.d.ts +0 -5
  149. package/dist/es/crypto/sm/lib/sm3.mjs +0 -155
  150. package/dist/es/crypto/sm/lib/utils.d.ts +0 -53
  151. package/dist/es/crypto/sm/lib/utils.mjs +0 -158
  152. package/dist/es/crypto/sm/sm2/index.d.ts +0 -71
  153. package/dist/es/crypto/sm/sm2/index.mjs +0 -101
  154. package/dist/es/crypto/sm/sm2/sm2.d.ts +0 -34
  155. package/dist/es/crypto/sm/sm2/sm2.mjs +0 -220
  156. package/dist/es/crypto/sm/sm3/index.d.ts +0 -7
  157. package/dist/es/crypto/sm/sm3/index.mjs +0 -13
  158. package/dist/es/crypto/sm/sm3/sm3.d.ts +0 -1
  159. package/dist/es/crypto/sm/sm3/sm3.mjs +0 -91
  160. package/dist/es/crypto/sm/sm4/index.d.ts +0 -16
  161. package/dist/es/crypto/sm/sm4/index.mjs +0 -24
  162. package/dist/es/crypto/sm/sm4/sm4.d.ts +0 -2
  163. package/dist/es/crypto/sm/sm4/sm4.mjs +0 -324
  164. package/dist/es/crypto/tea/index.d.ts +0 -14
  165. package/dist/es/crypto/tea/index.mjs +0 -22
  166. package/dist/es/crypto/tea/tea.d.ts +0 -69
  167. package/dist/es/crypto/tea/tea.mjs +0 -185
  168. package/dist/es/date/index.d.ts +0 -547
  169. package/dist/es/date/index.mjs +0 -1179
  170. package/dist/es/desensitized/index.d.ts +0 -38
  171. package/dist/es/desensitized/index.mjs +0 -69
  172. package/dist/es/device/index.d.ts +0 -67
  173. package/dist/es/device/index.mjs +0 -137
  174. package/dist/es/dom/index.d.ts +0 -57
  175. package/dist/es/dom/index.mjs +0 -119
  176. package/dist/es/file/index.d.ts +0 -93
  177. package/dist/es/file/index.mjs +0 -317
  178. package/dist/es/function/index.d.ts +0 -23
  179. package/dist/es/function/index.mjs +0 -65
  180. package/dist/es/keycode/index.d.ts +0 -12
  181. package/dist/es/keycode/index.mjs +0 -30
  182. package/dist/es/math/index.d.ts +0 -66
  183. package/dist/es/math/index.mjs +0 -268
  184. package/dist/es/number/index.d.ts +0 -14
  185. package/dist/es/number/index.mjs +0 -28
  186. package/dist/es/object/index.d.ts +0 -83
  187. package/dist/es/object/index.mjs +0 -259
  188. package/dist/es/pagination/index.d.ts +0 -34
  189. package/dist/es/pagination/index.mjs +0 -125
  190. package/dist/es/random/index.d.ts +0 -15
  191. package/dist/es/random/index.mjs +0 -21
  192. package/dist/es/regexp/index.d.ts +0 -63
  193. package/dist/es/regexp/index.mjs +0 -89
  194. package/dist/es/storage/index.d.ts +0 -7
  195. package/dist/es/storage/index.mjs +0 -9
  196. package/dist/es/storage/localStorage.d.ts +0 -21
  197. package/dist/es/storage/localStorage.mjs +0 -32
  198. package/dist/es/storage/sessionStorage.d.ts +0 -21
  199. package/dist/es/storage/sessionStorage.mjs +0 -32
  200. package/dist/es/string/index.d.ts +0 -121
  201. package/dist/es/string/index.mjs +0 -339
  202. package/dist/es/url/index.d.ts +0 -118
  203. package/dist/es/url/index.mjs +0 -240
  204. package/dist/es/validate/index.d.ts +0 -228
  205. package/dist/es/validate/index.mjs +0 -431
  206. package/dist/es/weapp/index.d.ts +0 -57
  207. package/dist/es/weapp/index.mjs +0 -131
  208. package/dist/lib/index.full.cjs.js +0 -14264
  209. package/dist/lib/index.full.cjs.min.js +0 -69
  210. package/dist/lib/index.full.cjs.min.js.map +0 -1
  211. package/dist/lib/index.full.esm.js +0 -13910
  212. package/dist/lib/index.full.esm.min.js +0 -64
  213. package/dist/lib/index.full.esm.min.js.map +0 -1
@@ -1,348 +0,0 @@
1
- 'use strict';
2
-
3
- /*
4
- * [hi-base64]{@link https://github.com/emn178/hi-base64}
5
- *
6
- * @version 0.3.1
7
- * @author Chen, Yi-Cyuan [emn178@gmail.com]
8
- * @copyright Chen, Yi-Cyuan 2014-2023
9
- * @license MIT
10
- */
11
- /* jslint bitwise: true */
12
- var ENCODING_ERROR = "not a UTF-8 string";
13
- var WINDOW = typeof window === "object";
14
- var root = WINDOW ? window : {};
15
- if (root.HI_BASE64_NO_WINDOW) {
16
- WINDOW = false;
17
- }
18
- var WEB_WORKER = !WINDOW && typeof self === "object";
19
- var NODE_JS = !root.HI_BASE64_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node;
20
- if (NODE_JS) {
21
- root = global;
22
- }
23
- else if (WEB_WORKER) {
24
- root = self;
25
- }
26
- var BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
27
- var BASE64_DECODE_CHAR = {};
28
- for (var i = 0; i < 64; ++i) {
29
- BASE64_DECODE_CHAR[BASE64_ENCODE_CHAR[i]] = i;
30
- }
31
- BASE64_DECODE_CHAR["-"] = 62;
32
- BASE64_DECODE_CHAR["_"] = 63;
33
- var cleanBase64Str = function (base64Str) {
34
- return base64Str.split("=")[0].replace(/[\r\n]/g, "");
35
- };
36
- var utf8ToBytes = function (str) {
37
- var bytes = [];
38
- for (var i = 0; i < str.length; i++) {
39
- var c = str.charCodeAt(i);
40
- if (c < 0x80) {
41
- bytes[bytes.length] = c;
42
- }
43
- else if (c < 0x800) {
44
- bytes[bytes.length] = 0xc0 | (c >> 6);
45
- bytes[bytes.length] = 0x80 | (c & 0x3f);
46
- }
47
- else if (c < 0xd800 || c >= 0xe000) {
48
- bytes[bytes.length] = 0xe0 | (c >> 12);
49
- bytes[bytes.length] = 0x80 | ((c >> 6) & 0x3f);
50
- bytes[bytes.length] = 0x80 | (c & 0x3f);
51
- }
52
- else {
53
- c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));
54
- bytes[bytes.length] = 0xf0 | (c >> 18);
55
- bytes[bytes.length] = 0x80 | ((c >> 12) & 0x3f);
56
- bytes[bytes.length] = 0x80 | ((c >> 6) & 0x3f);
57
- bytes[bytes.length] = 0x80 | (c & 0x3f);
58
- }
59
- }
60
- return bytes;
61
- };
62
- var decodeAsBytes = function (base64Str) {
63
- base64Str = cleanBase64Str(base64Str);
64
- var v1, v2, v3, v4, bytes = [], index = 0, length = base64Str.length;
65
- // 4 char to 3 bytes
66
- for (var i = 0, count = (length >> 2) << 2; i < count;) {
67
- v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
68
- v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
69
- v3 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
70
- v4 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
71
- bytes[index++] = ((v1 << 2) | (v2 >>> 4)) & 255;
72
- bytes[index++] = ((v2 << 4) | (v3 >>> 2)) & 255;
73
- bytes[index++] = ((v3 << 6) | v4) & 255;
74
- }
75
- // remain bytes
76
- var remain = length - count;
77
- if (remain === 2) {
78
- v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
79
- v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
80
- bytes[index++] = ((v1 << 2) | (v2 >>> 4)) & 255;
81
- }
82
- else if (remain === 3) {
83
- v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
84
- v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
85
- v3 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
86
- bytes[index++] = ((v1 << 2) | (v2 >>> 4)) & 255;
87
- bytes[index++] = ((v2 << 4) | (v3 >>> 2)) & 255;
88
- }
89
- return bytes;
90
- };
91
- var encodeFromBytes = function (bytes) {
92
- var v1, v2, v3, base64Str = [], length = bytes.length;
93
- for (var i = 0, count = parseInt(length / 3) * 3; i < count;) {
94
- v1 = bytes[i++];
95
- v2 = bytes[i++];
96
- v3 = bytes[i++];
97
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[((v1 << 4) | (v2 >>> 4)) & 63], BASE64_ENCODE_CHAR[((v2 << 2) | (v3 >>> 6)) & 63], BASE64_ENCODE_CHAR[v3 & 63]);
98
- }
99
- // remain char
100
- var remain = length - count;
101
- if (remain === 1) {
102
- v1 = bytes[i];
103
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[(v1 << 4) & 63], "==");
104
- }
105
- else if (remain === 2) {
106
- v1 = bytes[i++];
107
- v2 = bytes[i];
108
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[((v1 << 4) | (v2 >>> 4)) & 63], BASE64_ENCODE_CHAR[(v2 << 2) & 63], "=");
109
- }
110
- return base64Str.join("");
111
- };
112
- var btoa = root.btoa, atob = root.atob, utf8Base64Encode, utf8Base64Decode;
113
- if (NODE_JS) {
114
- var Buffer = require("buffer").Buffer;
115
- btoa = function (str) {
116
- return Buffer.from(str, "ascii").toString("base64");
117
- };
118
- utf8Base64Encode = function (str) {
119
- return Buffer.from(str).toString("base64");
120
- };
121
- encodeFromBytes = utf8Base64Encode;
122
- atob = function (base64Str) {
123
- return Buffer.from(base64Str, "base64").toString("ascii");
124
- };
125
- utf8Base64Decode = function (base64Str) {
126
- return Buffer.from(base64Str, "base64").toString();
127
- };
128
- }
129
- else if (!btoa) {
130
- btoa = function (str) {
131
- var v1, v2, v3, base64Str = [], length = str.length;
132
- for (var i = 0, count = parseInt(length / 3) * 3; i < count;) {
133
- v1 = str.charCodeAt(i++);
134
- v2 = str.charCodeAt(i++);
135
- v3 = str.charCodeAt(i++);
136
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[((v1 << 4) | (v2 >>> 4)) & 63], BASE64_ENCODE_CHAR[((v2 << 2) | (v3 >>> 6)) & 63], BASE64_ENCODE_CHAR[v3 & 63]);
137
- }
138
- // remain char
139
- var remain = length - count;
140
- if (remain === 1) {
141
- v1 = str.charCodeAt(i);
142
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[(v1 << 4) & 63], "==");
143
- }
144
- else if (remain === 2) {
145
- v1 = str.charCodeAt(i++);
146
- v2 = str.charCodeAt(i);
147
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[((v1 << 4) | (v2 >>> 4)) & 63], BASE64_ENCODE_CHAR[(v2 << 2) & 63], "=");
148
- }
149
- return base64Str.join("");
150
- };
151
- utf8Base64Encode = function (str) {
152
- var v1, v2, v3, base64Str = [], bytes = utf8ToBytes(str), length = bytes.length;
153
- for (var i = 0, count = parseInt(length / 3) * 3; i < count;) {
154
- v1 = bytes[i++];
155
- v2 = bytes[i++];
156
- v3 = bytes[i++];
157
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[((v1 << 4) | (v2 >>> 4)) & 63], BASE64_ENCODE_CHAR[((v2 << 2) | (v3 >>> 6)) & 63], BASE64_ENCODE_CHAR[v3 & 63]);
158
- }
159
- // remain char
160
- var remain = length - count;
161
- if (remain === 1) {
162
- v1 = bytes[i];
163
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[(v1 << 4) & 63], "==");
164
- }
165
- else if (remain === 2) {
166
- v1 = bytes[i++];
167
- v2 = bytes[i];
168
- base64Str.push(BASE64_ENCODE_CHAR[v1 >>> 2], BASE64_ENCODE_CHAR[((v1 << 4) | (v2 >>> 4)) & 63], BASE64_ENCODE_CHAR[(v2 << 2) & 63], "=");
169
- }
170
- return base64Str.join("");
171
- };
172
- atob = function (base64Str) {
173
- var v1, v2, v3, v4, str = [], length = base64Str.length;
174
- // 4 char to 3 bytes
175
- for (var i = 0, count = (length >> 2) << 2; i < count;) {
176
- v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
177
- v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
178
- v3 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
179
- v4 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
180
- str.push(String.fromCharCode(((v1 << 2) | (v2 >>> 4)) & 255), String.fromCharCode(((v2 << 4) | (v3 >>> 2)) & 255), String.fromCharCode(((v3 << 6) | v4) & 255));
181
- }
182
- // remain bytes
183
- var remain = length - count;
184
- if (remain === 2) {
185
- v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
186
- v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
187
- str.push(String.fromCharCode(((v1 << 2) | (v2 >>> 4)) & 255));
188
- }
189
- else if (remain === 3) {
190
- v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
191
- v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
192
- v3 = BASE64_DECODE_CHAR[base64Str.charAt(i++)];
193
- str.push(String.fromCharCode(((v1 << 2) | (v2 >>> 4)) & 255), String.fromCharCode(((v2 << 4) | (v3 >>> 2)) & 255));
194
- }
195
- return str.join("");
196
- };
197
- utf8Base64Decode = function (base64Str) {
198
- var str = [], bytes = decodeAsBytes(base64Str), length = bytes.length;
199
- var i = 0, followingChars = 0, b, c;
200
- while (i < length) {
201
- b = bytes[i++];
202
- if (b <= 0x7f) {
203
- str.push(String.fromCharCode(b));
204
- continue;
205
- }
206
- else if (b > 0xbf && b <= 0xdf) {
207
- c = b & 0x1f;
208
- followingChars = 1;
209
- }
210
- else if (b <= 0xef) {
211
- c = b & 0x0f;
212
- followingChars = 2;
213
- }
214
- else if (b <= 0xf7) {
215
- c = b & 0x07;
216
- followingChars = 3;
217
- }
218
- else {
219
- throw new Error(ENCODING_ERROR);
220
- }
221
- for (var j = 0; j < followingChars; ++j) {
222
- b = bytes[i++];
223
- if (b < 0x80 || b > 0xbf) {
224
- throw new Error(ENCODING_ERROR);
225
- }
226
- c <<= 6;
227
- c += b & 0x3f;
228
- }
229
- if (c >= 0xd800 && c <= 0xdfff) {
230
- throw new Error(ENCODING_ERROR);
231
- }
232
- if (c > 0x10ffff) {
233
- throw new Error(ENCODING_ERROR);
234
- }
235
- if (c <= 0xffff) {
236
- str.push(String.fromCharCode(c));
237
- }
238
- else {
239
- c -= 0x10000;
240
- str.push(String.fromCharCode((c >> 10) + 0xd800), String.fromCharCode((c & 0x3ff) + 0xdc00));
241
- }
242
- }
243
- return str.join("");
244
- };
245
- }
246
- else {
247
- utf8Base64Encode = function (str) {
248
- var result = [];
249
- for (var i = 0; i < str.length; i++) {
250
- var charcode = str.charCodeAt(i);
251
- if (charcode < 0x80) {
252
- result.push(String.fromCharCode(charcode));
253
- }
254
- else if (charcode < 0x800) {
255
- result.push(String.fromCharCode(0xc0 | (charcode >> 6)), String.fromCharCode(0x80 | (charcode & 0x3f)));
256
- }
257
- else if (charcode < 0xd800 || charcode >= 0xe000) {
258
- result.push(String.fromCharCode(0xe0 | (charcode >> 12)), String.fromCharCode(0x80 | ((charcode >> 6) & 0x3f)), String.fromCharCode(0x80 | (charcode & 0x3f)));
259
- }
260
- else {
261
- charcode = 0x10000 + (((charcode & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));
262
- result.push(String.fromCharCode(0xf0 | (charcode >> 18)), String.fromCharCode(0x80 | ((charcode >> 12) & 0x3f)), String.fromCharCode(0x80 | ((charcode >> 6) & 0x3f)), String.fromCharCode(0x80 | (charcode & 0x3f)));
263
- }
264
- }
265
- return btoa(result.join(""));
266
- };
267
- utf8Base64Decode = function (base64Str) {
268
- var tmpStr = atob(base64Str.replace(/-/g, "+").replace(/_/g, "/"));
269
- if (!/[^\x00-\x7F]/.test(tmpStr)) {
270
- return tmpStr;
271
- }
272
- var str = [], i = 0, length = tmpStr.length, followingChars = 0, b, c;
273
- while (i < length) {
274
- b = tmpStr.charCodeAt(i++);
275
- if (b <= 0x7f) {
276
- str.push(String.fromCharCode(b));
277
- continue;
278
- }
279
- else if (b > 0xbf && b <= 0xdf) {
280
- c = b & 0x1f;
281
- followingChars = 1;
282
- }
283
- else if (b <= 0xef) {
284
- c = b & 0x0f;
285
- followingChars = 2;
286
- }
287
- else if (b <= 0xf7) {
288
- c = b & 0x07;
289
- followingChars = 3;
290
- }
291
- else {
292
- throw new Error(ENCODING_ERROR);
293
- }
294
- for (var j = 0; j < followingChars; ++j) {
295
- b = tmpStr.charCodeAt(i++);
296
- if (b < 0x80 || b > 0xbf) {
297
- throw new Error(ENCODING_ERROR);
298
- }
299
- c <<= 6;
300
- c += b & 0x3f;
301
- }
302
- if (c >= 0xd800 && c <= 0xdfff) {
303
- throw new Error(ENCODING_ERROR);
304
- }
305
- if (c > 0x10ffff) {
306
- throw new Error(ENCODING_ERROR);
307
- }
308
- if (c <= 0xffff) {
309
- str.push(String.fromCharCode(c));
310
- }
311
- else {
312
- c -= 0x10000;
313
- str.push(String.fromCharCode((c >> 10) + 0xd800), String.fromCharCode((c & 0x3ff) + 0xdc00));
314
- }
315
- }
316
- return str.join("");
317
- };
318
- }
319
- var encode = function (str, asciiOnly) {
320
- var notString = typeof str != "string";
321
- if (notString && str.constructor === root.ArrayBuffer) {
322
- str = new Uint8Array(str);
323
- }
324
- if (notString) {
325
- return encodeFromBytes(str);
326
- }
327
- else {
328
- if (/[^\x00-\x7F]/.test(str)) {
329
- return utf8Base64Encode(str);
330
- }
331
- else {
332
- return btoa(str);
333
- }
334
- }
335
- };
336
- var decode = function (base64Str, asciiOnly) {
337
- base64Str = cleanBase64Str(base64Str);
338
- return asciiOnly ? atob(base64Str) : utf8Base64Decode(base64Str);
339
- };
340
- /* 以下是内部实现需要的es模块化导出方法 */
341
- const utf8Encode = utf8Base64Encode;
342
- const utf8Decode = utf8Base64Decode;
343
-
344
- exports.decode = decode;
345
- exports.decodeAsBytes = decodeAsBytes;
346
- exports.encode = encode;
347
- exports.utf8Decode = utf8Decode;
348
- exports.utf8Encode = utf8Encode;
@@ -1,59 +0,0 @@
1
- 'use strict';
2
-
3
- var base64 = require('./base64.cjs');
4
-
5
- /**
6
- * base64 加密
7
- * @param {String} str 字符串
8
- * @returns {String} 返回加密后的字符串
9
- */
10
- function encode(str) {
11
- return base64.encode(str);
12
- }
13
- /**
14
- * base64 解密
15
- * @param {String} str 字符串
16
- * @returns {String} 返回解密后的字符串
17
- */
18
- function decode(str) {
19
- return base64.decode(str);
20
- }
21
- /**
22
- * base64 utf8加密
23
- * @param {String} str 字符串
24
- * @returns {String} 返回加密后的字符串
25
- */
26
- function utf8Encode(str) {
27
- return base64.utf8Encode(str);
28
- }
29
- /**
30
- * base64 utf8解密
31
- * @param {String} str 字符串
32
- * @returns {String} 返回解密后的字符串
33
- */
34
- function utf8Decode(str) {
35
- return base64.utf8Decode(str);
36
- }
37
- /**
38
- * base64 加密字节数组
39
- * @param {Array} array 数组
40
- * @returns {String} 返回加密后的字符串
41
- */
42
- function encodeAsBytes(array) {
43
- return base64.encode(array);
44
- }
45
- /**
46
- * base64 解密字节数组
47
- * @param {String} str 字符串
48
- * @returns {Array} 返回解密后的字节数组
49
- */
50
- function decodeAsBytes(str) {
51
- return base64.decodeAsBytes(str);
52
- }
53
-
54
- exports.decode = decode;
55
- exports.decodeAsBytes = decodeAsBytes;
56
- exports.encode = encode;
57
- exports.encodeAsBytes = encodeAsBytes;
58
- exports.utf8Decode = utf8Decode;
59
- exports.utf8Encode = utf8Encode;
@@ -1,257 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('../base64/index.cjs');
4
-
5
- const { encode, decode } = index;
6
- /**
7
- * 使用方法
8
- * 实例化对象 new Des()
9
- * 加密方法 encrypt(key,plaintext)
10
- * 解密方法 decrypt(key,ciphertext)
11
- * 示例---------------------------------------------------
12
- * var Des = new Des();
13
- * var key = 'custom key';
14
- * var value = '需要加密的内容'
15
- * var ciphertext = encrypt(key,value);//加密
16
- * var plaintext = encrypt(key,ciphertext);//解密
17
- */
18
- function Des(key, value) {
19
- this.key = key;
20
- this.value = value;
21
- }
22
- /**
23
- * @param {String} key 密钥
24
- * @param {String} value 内容
25
- * @param {String} type 类型 ->encrypt加密|decrypt解密
26
- */
27
- Des.prototype._DesCreate = function (key, value, type) {
28
- var message = value;
29
- if (type === "decrypt") {
30
- var requestValue = "";
31
- for (var i = value.substr(0, 2) == "0x" ? 2 : 0; i < value.length; i += 2) {
32
- requestValue += String.fromCharCode(parseInt(value.substr(i, 2), 16));
33
- }
34
- message = requestValue;
35
- }
36
- var spfunction1 = new Array(0x1010400, 0, 0x10000, 0x1010404, 0x1010004, 0x10404, 0x4, 0x10000, 0x400, 0x1010400, 0x1010404, 0x400, 0x1000404, 0x1010004, 0x1000000, 0x4, 0x404, 0x1000400, 0x1000400, 0x10400, 0x10400, 0x1010000, 0x1010000, 0x1000404, 0x10004, 0x1000004, 0x1000004, 0x10004, 0, 0x404, 0x10404, 0x1000000, 0x10000, 0x1010404, 0x4, 0x1010000, 0x1010400, 0x1000000, 0x1000000, 0x400, 0x1010004, 0x10000, 0x10400, 0x1000004, 0x400, 0x4, 0x1000404, 0x10404, 0x1010404, 0x10004, 0x1010000, 0x1000404, 0x1000004, 0x404, 0x10404, 0x1010400, 0x404, 0x1000400, 0x1000400, 0, 0x10004, 0x10400, 0, 0x1010004);
37
- var spfunction2 = new Array(-2146402272, -2147450880, 0x8000, 0x108020, 0x100000, 0x20, -2146435040, -2147450848, -2147483616, -2146402272, -2146402304, -2147483648, -2147450880, 0x100000, 0x20, -2146435040, 0x108000, 0x100020, -2147450848, 0, -2147483648, 0x8000, 0x108020, -2146435072, 0x100020, -2147483616, 0, 0x108000, 0x8020, -2146402304, -2146435072, 0x8020, 0, 0x108020, -2146435040, 0x100000, -2147450848, -2146435072, -2146402304, 0x8000, -2146435072, -2147450880, 0x20, -2146402272, 0x108020, 0x20, 0x8000, -2147483648, 0x8020, -2146402304, 0x100000, -2147483616, 0x100020, -2147450848, -2147483616, 0x100020, 0x108000, 0, -2147450880, 0x8020, -2147483648, -2146435040, -2146402272, 0x108000);
38
- var spfunction3 = new Array(0x208, 0x8020200, 0, 0x8020008, 0x8000200, 0, 0x20208, 0x8000200, 0x20008, 0x8000008, 0x8000008, 0x20000, 0x8020208, 0x20008, 0x8020000, 0x208, 0x8000000, 0x8, 0x8020200, 0x200, 0x20200, 0x8020000, 0x8020008, 0x20208, 0x8000208, 0x20200, 0x20000, 0x8000208, 0x8, 0x8020208, 0x200, 0x8000000, 0x8020200, 0x8000000, 0x20008, 0x208, 0x20000, 0x8020200, 0x8000200, 0, 0x200, 0x20008, 0x8020208, 0x8000200, 0x8000008, 0x200, 0, 0x8020008, 0x8000208, 0x20000, 0x8000000, 0x8020208, 0x8, 0x20208, 0x20200, 0x8000008, 0x8020000, 0x8000208, 0x208, 0x8020000, 0x20208, 0x8, 0x8020008, 0x20200);
39
- var spfunction4 = new Array(0x802001, 0x2081, 0x2081, 0x80, 0x802080, 0x800081, 0x800001, 0x2001, 0, 0x802000, 0x802000, 0x802081, 0x81, 0, 0x800080, 0x800001, 0x1, 0x2000, 0x800000, 0x802001, 0x80, 0x800000, 0x2001, 0x2080, 0x800081, 0x1, 0x2080, 0x800080, 0x2000, 0x802080, 0x802081, 0x81, 0x800080, 0x800001, 0x802000, 0x802081, 0x81, 0, 0, 0x802000, 0x2080, 0x800080, 0x800081, 0x1, 0x802001, 0x2081, 0x2081, 0x80, 0x802081, 0x81, 0x1, 0x2000, 0x800001, 0x2001, 0x802080, 0x800081, 0x2001, 0x2080, 0x800000, 0x802001, 0x80, 0x800000, 0x2000, 0x802080);
40
- var spfunction5 = new Array(0x100, 0x2080100, 0x2080000, 0x42000100, 0x80000, 0x100, 0x40000000, 0x2080000, 0x40080100, 0x80000, 0x2000100, 0x40080100, 0x42000100, 0x42080000, 0x80100, 0x40000000, 0x2000000, 0x40080000, 0x40080000, 0, 0x40000100, 0x42080100, 0x42080100, 0x2000100, 0x42080000, 0x40000100, 0, 0x42000000, 0x2080100, 0x2000000, 0x42000000, 0x80100, 0x80000, 0x42000100, 0x100, 0x2000000, 0x40000000, 0x2080000, 0x42000100, 0x40080100, 0x2000100, 0x40000000, 0x42080000, 0x2080100, 0x40080100, 0x100, 0x2000000, 0x42080000, 0x42080100, 0x80100, 0x42000000, 0x42080100, 0x2080000, 0, 0x40080000, 0x42000000, 0x80100, 0x2000100, 0x40000100, 0x80000, 0, 0x40080000, 0x2080100, 0x40000100);
41
- var spfunction6 = new Array(0x20000010, 0x20400000, 0x4000, 0x20404010, 0x20400000, 0x10, 0x20404010, 0x400000, 0x20004000, 0x404010, 0x400000, 0x20000010, 0x400010, 0x20004000, 0x20000000, 0x4010, 0, 0x400010, 0x20004010, 0x4000, 0x404000, 0x20004010, 0x10, 0x20400010, 0x20400010, 0, 0x404010, 0x20404000, 0x4010, 0x404000, 0x20404000, 0x20000000, 0x20004000, 0x10, 0x20400010, 0x404000, 0x20404010, 0x400000, 0x4010, 0x20000010, 0x400000, 0x20004000, 0x20000000, 0x4010, 0x20000010, 0x20404010, 0x404000, 0x20400000, 0x404010, 0x20404000, 0, 0x20400010, 0x10, 0x4000, 0x20400000, 0x404010, 0x4000, 0x400010, 0x20004010, 0, 0x20404000, 0x20000000, 0x400010, 0x20004010);
42
- var spfunction7 = new Array(0x200000, 0x4200002, 0x4000802, 0, 0x800, 0x4000802, 0x200802, 0x4200800, 0x4200802, 0x200000, 0, 0x4000002, 0x2, 0x4000000, 0x4200002, 0x802, 0x4000800, 0x200802, 0x200002, 0x4000800, 0x4000002, 0x4200000, 0x4200800, 0x200002, 0x4200000, 0x800, 0x802, 0x4200802, 0x200800, 0x2, 0x4000000, 0x200800, 0x4000000, 0x200800, 0x200000, 0x4000802, 0x4000802, 0x4200002, 0x4200002, 0x2, 0x200002, 0x4000000, 0x4000800, 0x200000, 0x4200800, 0x802, 0x200802, 0x4200800, 0x802, 0x4000002, 0x4200802, 0x4200000, 0x200800, 0, 0x2, 0x4200802, 0, 0x200802, 0x4200000, 0x800, 0x4000002, 0x4000800, 0x800, 0x200002);
43
- var spfunction8 = new Array(0x10001040, 0x1000, 0x40000, 0x10041040, 0x10000000, 0x10001040, 0x40, 0x10000000, 0x40040, 0x10040000, 0x10041040, 0x41000, 0x10041000, 0x41040, 0x1000, 0x40, 0x10040000, 0x10000040, 0x10001000, 0x1040, 0x41000, 0x40040, 0x10040040, 0x10041000, 0x1040, 0, 0, 0x10040040, 0x10000040, 0x10001000, 0x41040, 0x40000, 0x41040, 0x40000, 0x10041000, 0x1000, 0x40, 0x10040040, 0x1000, 0x41040, 0x10001000, 0x40, 0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x40000, 0x10001040, 0, 0x10041040, 0x40040, 0x10000040, 0x10040000, 0x10001000, 0x10001040, 0, 0x10041040, 0x41000, 0x41000, 0x1040, 0x1040, 0x40040, 0x10000000, 0x10041000);
44
- var keys = this._DesCreateKeys(key);
45
- var m = 0, i, j, temp, right1, right2, left, right, looping;
46
- var endloop, loopinc;
47
- var len = message.length;
48
- var chunk = 0;
49
- var iterations = keys.length == 32 ? 3 : 9;
50
- if (iterations == 3) {
51
- looping = type === "encrypt" ? new Array(0, 32, 2) : new Array(30, -2, -2);
52
- }
53
- else {
54
- looping =
55
- type === "encrypt" ? new Array(0, 32, 2, 62, 30, -2, 64, 96, 2) : new Array(94, 62, -2, 32, 64, 2, 30, -2, -2);
56
- }
57
- var result = "";
58
- var tempresult = "";
59
- while (m < len) {
60
- left =
61
- (message.charCodeAt(m++) << 24) |
62
- (message.charCodeAt(m++) << 16) |
63
- (message.charCodeAt(m++) << 8) |
64
- message.charCodeAt(m++);
65
- right =
66
- (message.charCodeAt(m++) << 24) |
67
- (message.charCodeAt(m++) << 16) |
68
- (message.charCodeAt(m++) << 8) |
69
- message.charCodeAt(m++);
70
- temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;
71
- right ^= temp;
72
- left ^= temp << 4;
73
- temp = ((left >>> 16) ^ right) & 0x0000ffff;
74
- right ^= temp;
75
- left ^= temp << 16;
76
- temp = ((right >>> 2) ^ left) & 0x33333333;
77
- left ^= temp;
78
- right ^= temp << 2;
79
- temp = ((right >>> 8) ^ left) & 0x00ff00ff;
80
- left ^= temp;
81
- right ^= temp << 8;
82
- temp = ((left >>> 1) ^ right) & 0x55555555;
83
- right ^= temp;
84
- left ^= temp << 1;
85
- left = (left << 1) | (left >>> 31);
86
- right = (right << 1) | (right >>> 31);
87
- for (j = 0; j < iterations; j += 3) {
88
- endloop = looping[j + 1];
89
- loopinc = looping[j + 2];
90
- for (i = looping[j]; i != endloop; i += loopinc) {
91
- right1 = right ^ keys[i];
92
- right2 = ((right >>> 4) | (right << 28)) ^ keys[i + 1];
93
- temp = left;
94
- left = right;
95
- right =
96
- temp ^
97
- (spfunction2[(right1 >>> 24) & 0x3f] |
98
- spfunction4[(right1 >>> 16) & 0x3f] |
99
- spfunction6[(right1 >>> 8) & 0x3f] |
100
- spfunction8[right1 & 0x3f] |
101
- spfunction1[(right2 >>> 24) & 0x3f] |
102
- spfunction3[(right2 >>> 16) & 0x3f] |
103
- spfunction5[(right2 >>> 8) & 0x3f] |
104
- spfunction7[right2 & 0x3f]);
105
- }
106
- temp = left;
107
- left = right;
108
- right = temp;
109
- }
110
- left = (left >>> 1) | (left << 31);
111
- right = (right >>> 1) | (right << 31);
112
- temp = ((left >>> 1) ^ right) & 0x55555555;
113
- right ^= temp;
114
- left ^= temp << 1;
115
- temp = ((right >>> 8) ^ left) & 0x00ff00ff;
116
- left ^= temp;
117
- right ^= temp << 8;
118
- temp = ((right >>> 2) ^ left) & 0x33333333;
119
- left ^= temp;
120
- right ^= temp << 2;
121
- temp = ((left >>> 16) ^ right) & 0x0000ffff;
122
- right ^= temp;
123
- left ^= temp << 16;
124
- temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;
125
- right ^= temp;
126
- left ^= temp << 4;
127
- tempresult += String.fromCharCode(left >>> 24, (left >>> 16) & 0xff, (left >>> 8) & 0xff, left & 0xff, right >>> 24, (right >>> 16) & 0xff, (right >>> 8) & 0xff, right & 0xff);
128
- chunk += 8;
129
- if (chunk == 512) {
130
- result += tempresult;
131
- tempresult = "";
132
- chunk = 0;
133
- }
134
- }
135
- var resultTempresult = result + tempresult;
136
- if (type === "encrypt") {
137
- var resultCiphertext = "";
138
- var hexes = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
139
- for (var i = 0; i < resultTempresult.length; i++) {
140
- resultCiphertext += hexes[resultTempresult.charCodeAt(i) >> 4] + hexes[resultTempresult.charCodeAt(i) & 0xf];
141
- }
142
- return resultCiphertext;
143
- }
144
- return result + tempresult;
145
- };
146
- Des.prototype._DesCreateKeys = function (key) {
147
- var pc2bytes0 = new Array(0, 0x4, 0x20000000, 0x20000004, 0x10000, 0x10004, 0x20010000, 0x20010004, 0x200, 0x204, 0x20000200, 0x20000204, 0x10200, 0x10204, 0x20010200, 0x20010204);
148
- var pc2bytes1 = new Array(0, 0x1, 0x100000, 0x100001, 0x4000000, 0x4000001, 0x4100000, 0x4100001, 0x100, 0x101, 0x100100, 0x100101, 0x4000100, 0x4000101, 0x4100100, 0x4100101);
149
- var pc2bytes2 = new Array(0, 0x8, 0x800, 0x808, 0x1000000, 0x1000008, 0x1000800, 0x1000808, 0, 0x8, 0x800, 0x808, 0x1000000, 0x1000008, 0x1000800, 0x1000808);
150
- var pc2bytes3 = new Array(0, 0x200000, 0x8000000, 0x8200000, 0x2000, 0x202000, 0x8002000, 0x8202000, 0x20000, 0x220000, 0x8020000, 0x8220000, 0x22000, 0x222000, 0x8022000, 0x8222000);
151
- var pc2bytes4 = new Array(0, 0x40000, 0x10, 0x40010, 0, 0x40000, 0x10, 0x40010, 0x1000, 0x41000, 0x1010, 0x41010, 0x1000, 0x41000, 0x1010, 0x41010);
152
- var pc2bytes5 = new Array(0, 0x400, 0x20, 0x420, 0, 0x400, 0x20, 0x420, 0x2000000, 0x2000400, 0x2000020, 0x2000420, 0x2000000, 0x2000400, 0x2000020, 0x2000420);
153
- var pc2bytes6 = new Array(0, 0x10000000, 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002, 0, 0x10000000, 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002);
154
- var pc2bytes7 = new Array(0, 0x10000, 0x800, 0x10800, 0x20000000, 0x20010000, 0x20000800, 0x20010800, 0x20000, 0x30000, 0x20800, 0x30800, 0x20020000, 0x20030000, 0x20020800, 0x20030800);
155
- var pc2bytes8 = new Array(0, 0x40000, 0, 0x40000, 0x2, 0x40002, 0x2, 0x40002, 0x2000000, 0x2040000, 0x2000000, 0x2040000, 0x2000002, 0x2040002, 0x2000002, 0x2040002);
156
- var pc2bytes9 = new Array(0, 0x10000000, 0x8, 0x10000008, 0, 0x10000000, 0x8, 0x10000008, 0x400, 0x10000400, 0x408, 0x10000408, 0x400, 0x10000400, 0x408, 0x10000408);
157
- var pc2bytes10 = new Array(0, 0x20, 0, 0x20, 0x100000, 0x100020, 0x100000, 0x100020, 0x2000, 0x2020, 0x2000, 0x2020, 0x102000, 0x102020, 0x102000, 0x102020);
158
- var pc2bytes11 = new Array(0, 0x1000000, 0x200, 0x1000200, 0x200000, 0x1200000, 0x200200, 0x1200200, 0x4000000, 0x5000000, 0x4000200, 0x5000200, 0x4200000, 0x5200000, 0x4200200, 0x5200200);
159
- var pc2bytes12 = new Array(0, 0x1000, 0x8000000, 0x8001000, 0x80000, 0x81000, 0x8080000, 0x8081000, 0x10, 0x1010, 0x8000010, 0x8001010, 0x80010, 0x81010, 0x8080010, 0x8081010);
160
- var pc2bytes13 = new Array(0, 0x4, 0x100, 0x104, 0, 0x4, 0x100, 0x104, 0x1, 0x5, 0x101, 0x105, 0x1, 0x5, 0x101, 0x105);
161
- var iterations = key.length > 8 ? 3 : 1;
162
- var keys = new Array(32 * iterations);
163
- var shifts = new Array(0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0);
164
- var lefttemp, righttemp, m = 0, n = 0, temp;
165
- for (var j = 0; j < iterations; j++) {
166
- var left = (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++);
167
- var right = (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++);
168
- temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;
169
- right ^= temp;
170
- left ^= temp << 4;
171
- temp = ((right >>> -16) ^ left) & 0x0000ffff;
172
- left ^= temp;
173
- right ^= temp << -16;
174
- temp = ((left >>> 2) ^ right) & 0x33333333;
175
- right ^= temp;
176
- left ^= temp << 2;
177
- temp = ((right >>> -16) ^ left) & 0x0000ffff;
178
- left ^= temp;
179
- right ^= temp << -16;
180
- temp = ((left >>> 1) ^ right) & 0x55555555;
181
- right ^= temp;
182
- left ^= temp << 1;
183
- temp = ((right >>> 8) ^ left) & 0x00ff00ff;
184
- left ^= temp;
185
- right ^= temp << 8;
186
- temp = ((left >>> 1) ^ right) & 0x55555555;
187
- right ^= temp;
188
- left ^= temp << 1;
189
- temp = (left << 8) | ((right >>> 20) & 0x000000f0);
190
- left = (right << 24) | ((right << 8) & 0xff0000) | ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0);
191
- right = temp;
192
- for (var i = 0; i < shifts.length; i++) {
193
- if (shifts[i]) {
194
- left = (left << 2) | (left >>> 26);
195
- right = (right << 2) | (right >>> 26);
196
- }
197
- else {
198
- left = (left << 1) | (left >>> 27);
199
- right = (right << 1) | (right >>> 27);
200
- }
201
- left &= -15;
202
- right &= -15;
203
- lefttemp =
204
- pc2bytes0[left >>> 28] |
205
- pc2bytes1[(left >>> 24) & 0xf] |
206
- pc2bytes2[(left >>> 20) & 0xf] |
207
- pc2bytes3[(left >>> 16) & 0xf] |
208
- pc2bytes4[(left >>> 12) & 0xf] |
209
- pc2bytes5[(left >>> 8) & 0xf] |
210
- pc2bytes6[(left >>> 4) & 0xf];
211
- righttemp =
212
- pc2bytes7[right >>> 28] |
213
- pc2bytes8[(right >>> 24) & 0xf] |
214
- pc2bytes9[(right >>> 20) & 0xf] |
215
- pc2bytes10[(right >>> 16) & 0xf] |
216
- pc2bytes11[(right >>> 12) & 0xf] |
217
- pc2bytes12[(right >>> 8) & 0xf] |
218
- pc2bytes13[(right >>> 4) & 0xf];
219
- temp = ((righttemp >>> 16) ^ lefttemp) & 0x0000ffff;
220
- keys[n++] = lefttemp ^ temp;
221
- keys[n++] = righttemp ^ (temp << 16);
222
- }
223
- }
224
- return keys;
225
- };
226
- /*
227
- ------------------------------------------------------------------------------------
228
- 以上方法对象的私有方法
229
- 为了解决中文乱码
230
- 使用base64先加密,再用des加密
231
- 同理,解密时先用deds解密,再使用base64解密
232
- ------------------------------------------------------------------------------------
233
- */
234
- /**
235
- * 加密
236
- * @param {String} key 密钥
237
- * @param {String} plaintext 明文
238
- * @return {String} ciphertext 密文
239
- */
240
- Des.prototype.encrypt = function (key, plaintext) {
241
- var encodedString = encode(plaintext);
242
- var ciphertext = this._DesCreate(key, encodedString, "encrypt");
243
- return ciphertext;
244
- };
245
- /**
246
- * 解密
247
- * @param {String} key 密钥
248
- * @param {String} ciphertext 密文
249
- * @return {String} plaintext 明文
250
- */
251
- Des.prototype.decrypt = function (key, ciphertext) {
252
- var decryptText = this._DesCreate(key, ciphertext, "decrypt"); // Des解密
253
- var plaintext = decode(decryptText); // base64解密
254
- return plaintext;
255
- };
256
-
257
- module.exports = Des;