chache/we7/resource/js/base64.js
2024-01-22 18:48:00 +08:00

200 lines
3.5 KiB
JavaScript

module.exports = {
base64_encode: function (r) {
for (
var e,
a,
t,
h = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
o = 0,
c = r.length,
d = "";
o < c;
) {
if (((e = 255 & r.charCodeAt(o++)), o == c)) {
(d += h.charAt(e >> 2)), (d += h.charAt((3 & e) << 4)), (d += "==");
break;
}
if (((a = r.charCodeAt(o++)), o == c)) {
(d += h.charAt(e >> 2)),
(d += h.charAt(((3 & e) << 4) | ((240 & a) >> 4))),
(d += h.charAt((15 & a) << 2)),
(d += "=");
break;
}
(t = r.charCodeAt(o++)),
(d += h.charAt(e >> 2)),
(d += h.charAt(((3 & e) << 4) | ((240 & a) >> 4))),
(d += h.charAt(((15 & a) << 2) | ((192 & t) >> 6))),
(d += h.charAt(63 & t));
}
return d;
},
base64_decode: function (r) {
for (
var e,
a,
t,
h,
o = new Array(
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
62,
-1,
-1,
-1,
63,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
-1,
-1,
-1,
-1,
-1,
-1,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
-1,
-1,
-1,
-1,
-1
),
c = 0,
d = r.length,
i = "";
c < d;
) {
do {
e = o[255 & r.charCodeAt(c++)];
} while (c < d && -1 == e);
if (-1 == e) break;
do {
a = o[255 & r.charCodeAt(c++)];
} while (c < d && -1 == a);
if (-1 == a) break;
i += String.fromCharCode((e << 2) | ((48 & a) >> 4));
do {
if (61 == (t = 255 & r.charCodeAt(c++))) return i;
t = o[t];
} while (c < d && -1 == t);
if (-1 == t) break;
i += String.fromCharCode(((15 & a) << 4) | ((60 & t) >> 2));
do {
if (61 == (h = 255 & r.charCodeAt(c++))) return i;
h = o[h];
} while (c < d && -1 == h);
if (-1 == h) break;
i += String.fromCharCode(((3 & t) << 6) | h);
}
return i;
},
};