一、 BASE64编码
把byte[]中的元素当做无符号八位整数转换成只含有64个基本字符的字符串,这些基本字符是:
l 大写的A-Z
l 小写的a-z
l 数字0-9
l '+' 和 '/'
这64个字符构成BASE64的字符集。‘=’,为填充字符,结尾处可以填充0-2个填充字符
Base64是将原文按照每 3 个字节一组分开,这个 3 字节组中的每一组将被按照位分解成 4 个部分,每个部分 6 个位,在这 4 个部分的每个部分高位加上 2 个 0构成一个新的 4 字节组,新的字节组中,每个字节只有 6 位,能表示64个值。
在原文在转换为BASE64编码时,试是以3个字节为一组转换成4字节一组的BASE64编码。如果原文不是三字节的倍数,可能多出一个字节和两个字节,分别会被转为2字节和3字节的BASE64编码,这时编码系统应该在形成的BASE64编码最后添加上填充符”=”,保证BASE64编码长度是4的倍数。所以在BASE64编码后添加的填充符”=”可能为0-2个。
BASE64编码对照表如下:
Value |
Encoding |
Value |
Encoding |
Value |
Encoding |
Value |
Encoding |
|
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 |
|