Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。
为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。
码值 | 字符 | 码值 | 字符 | 码值 | 字符 | 码值 | 字符 | |||
---|---|---|---|---|---|---|---|---|---|---|
0 | 一个 | 16 | 问 | 32 | G | 48 | 在 | |||
1 | 乙 | 17 | [R | 33 | H | 49 | X | |||
2 | C | 18 | 小号 | 34 | 一世 | 50 | ÿ | |||
3 | d | 19 | Ť | 35 | Ĵ | 51 | 与 | |||
4 | 是 | 20 | ü | 36 | 至 | 52 | 0 | |||
5 | F | 21 | V | 37 | 升 | 53 | 1 | |||
6 | G | 22 | 在 | 38 | 米 | 54 | 2 | |||
7 | H | 23 | X | 39 | ñ | 55 | 3 | |||
8 | 一世 | 24 | ÿ | 40 | 的 | 56 | 4 | |||
9 | Ĵ | 25 | 与 | 41 | p | 57 | 5 | |||
10 | 至 | 26 | 一个 | 42 | q | 58 | 6 | |||
11 | 大号 | 27 | b | 43 | [R | 59 | 7 | |||
12 | 中号 | 28 | C | 44 | s | 60 | 8 | |||
13 | ñ | 29 | d | 45 | Ť | 61 | 9 | |||
14 | 的 | 30 | 是 | 46 | ü | 62 | + | |||
15 | P | 31 | F | 47 | v | 63 | / |