Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用‘=’,因此编码后输出的文本末尾可能会出现1或2个‘=’。
为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。
码值 | 字符 | 码值 | 字符 | |
---|---|---|---|---|
0 | A | 32 | g | |
1 | B | 33 | h | |
2 | C | 34 | i | |
3 | D | 35 | j | |
4 | E | 36 | k | |
5 | F | 37 | l | |
6 | G | 38 | m | |
7 | H | 39 | n | |
8 | I | 40 | o | |
9 | J | 41 | p | |
10 | K | 42 | q | |
11 | L | 43 | r | |
12 | M | 44 | s | |
13 | N | 45 | t | |
14 | O | 46 | u | |
15 | P | 47 | v | |
16 | Q | 48 | w | |
17 | R | 49 | x | |
18 | S | 50 | y | |
19 | T | 51 | z | |
20 | U | 52 | 0 | |
21 | V | 53 | 1 | |
22 | W | 54 | 2 | |
23 | X | 55 | 3 | |
24 | Y | 56 | 4 | |
25 | Z | 57 | 5 | |
26 | a | 58 | 6 | |
27 | b | 59 | 7 | |
28 | c | 60 | 8 | |
29 | d | 61 | 9 | |
30 | e | 62 | + | |
31 | f | 63 | / |