base64编码

1、Base64的原理:

实质上,base64就是一个64进制数字的表示方法。

编码方法:    1个字节占8位,3个字节占32位,  把3个字节转化为4个字节,每个字节6位,一个6位的二进制最大值是64。所以,base64后的字符串是原始内容的8/6倍,也就是大33%

然后用一张转码表对应各个字符,所以base64的可逆的。也就只能是一个编解码算法,不是加密算法。

索引
对应字符
索引
对应字符
索引
对应字符
索引
对应字符
0
A
17
R
34
i
51
z
1
B
18
S
35
j
52
0
2
C
19
T
36
k
53
1
3
D
20
U
37
l
54
2
4
E
21
V
38
m
55
3
5
F
22
W
39
n
56
4
6
G
23
X
40
o
57
5
7
H
24
Y
41
p
58
6
8
I
25
Z
42
q
59
7
9
J
26
a
43
r
60
8
10
K
27
b
44
s
61
9
11
L
28
c
45
t
62
+
12
M
29
d
46
u
63
/
13
N
30
e
47
v
   
14
O
31
f
48
w
   
15
P
32
g
49
x
   
16
Q
33
h
50
y
 

对于最后的不足3个字节的剩余部分的处理为转码后不足的补=

原文剩余的字节根据编码规则继续单独转(1变2,2变3;不够的位数用0补全),再用=号补满4个字节。这就是为什么有些Base64编码会以一个或两个等号结束的原因,但等号最多只有两个。因为:一个原字节至少会变成两个目标字节

对于表中的+和/,UTL不支持,所以URL一般会用特殊的base64方法。

参考:百度百科https://baike.baidu.com/item/base64/8545775?fr=aladdin

原文地址:https://www.cnblogs.com/aoyihuashao/p/8894135.html