Base64编码详解
原理
Base64编码以24个二进制为一个基本计算单位。
Base64编码的由来是由于0-63都有唯一的对应字母,刚好有64个字符,所以叫Base64。
要想表示64个所有的字符,需要6(64=26)个比特,所以24个二进制可以分有4个6位二进制(4*6=24),将6个比特高位补0变为8个比特后,就可以表示4个字节。也就是说一个3字节数据(24Bit)经过base64编码后变为4字节数据。
计算过程
字符 |
W |
S |
R |
T |
E |
|||
对应ASCII码 |
87 |
83 |
82 |
84 |
69 |
|||
3个8位二进制 |
01010111 |
01010011 |
01010010 |
01010100 |
01000101 |
补位 |
||
4个6位二进制 |
010101 |
110101 |
001101 |
010010 |
010101 |
000100 |
010100 |
补位 |
高位补0成4个8位二进制 |
00010101 |
00110101 |
00001101 |
00010010 |
00010101 |
00000100 |
00010100 |
补位 |
十进制 |
21 |
53 |
13 |
18 |
21 |
4 |
20 |
补位 |
Base64编码 |
V |
1 |
N |
S |
V |
E |
U |
= |
Base64计算规则:
(1)24个二进制为一基本计算单位,将原数据以3个字节划分,不足则补位。
(2)3个字节的数据变为4个6位二进制数据,不足的补0;如果不是4的倍数,补位至4的倍数。
(3)高位补0至8个Bit,变为1个字节。
(4)计算十进制,并查找base64编码表得到Base64编码。
附录:Base64编码表
Base64编码表
码值 |
字符 |
码值 |
字符 |
码值 |
字符 |
码值 |
字符 |
0 |
A |
16 |
Q |
32 |
g |
48 |
w |
1 |
B |
17 |
R |
33 |
h |
49 |
x |
2 |
C |
18 |
S |
34 |
i |
50 |
y |
3 |
D |
19 |
T |
35 |
j |
51 |
z |
4 |
E |
20 |
U |
36 |
k |
52 |
0 |
5 |
F |
21 |
V |
37 |
l |
53 |
1 |
6 |
G |
22 |
W |
38 |
m |
54 |
2 |
7 |
H |
23 |
X |
39 |
n |
55 |
3 |
8 |
I |
24 |
Y |
40 |
o |
56 |
4 |
9 |
J |
25 |
Z |
41 |
p |
57 |
5 |
10 |
K |
26 |
a |
42 |
q |
58 |
6 |
11 |
L |
27 |
b |
43 |
r |
59 |
7 |
12 |
M |
28 |
c |
44 |
s |
60 |
8 |
13 |
N |
29 |
d |
45 |
t |
61 |
9 |
14 |
O |
30 |
e |
46 |
u |
62 |
+ |
15 |
P |
31 |
f |
47 |
v |
63 |
/ |