一、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編碼會以一個或兩個等號結束的緣由,但等號最多隻有兩個。由於:一個原字節至少會變成兩個目標字節it
對於表中的+和/,UTL不支持,因此URL通常會用特殊的base64方法。base64
參考:百度百科https://baike.baidu.com/item/base64/8545775?fr=aladdintable