Base64 编码说明
Base64 选出 64 个字符——大写字母 A-Z、小写字母 a-z、数字 0-9、符号 "+"、"/"(再加上作为垫字的 "=",实际上是 65 个字符,垫字是当生成的 Base64 字符串的个数不是 4 的倍数时,添加在尾部的字符),作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。Base64 可以把任意其它数据用这65个ASCII码表示,便于传播中保持一致。
Base64 编码要求把 3 个 8 位字节(3*8=24)转化为 4 个 6 位的字节(4*6=24),之后在 6 位的前面补两个 0,形成 8 位一个字节的形式。如果剩下的字符不足 3 个字节,则用 0 填充,输出字符使用 =,因此编码后输出的文本末尾可能会出现 1 或 2 个 =。
以下是 Base64 编码的基本步骤:
- 将数据划分为 3 个字节一组(24位)。
- 将每个字节转换为 8 位二进制形式。
- 将 24 位数据按照 6 位一组进行划分,得到 4 个 6 位的组。
- 将每个 6 位的组转换为对应的 Base64 字符。
- 如果数据不足 3 字节,进行填充。
- 将所有转换后的 Base64 字符连接起来,形成最终的编码结果。
解码 Base64 编码的过程与编码相反,将每个 Base64 字符转换为对应的6位二进制值,然后将这些 6 位值组合成原始的二进制数据。
编码 “Man” 的结果为 TWFu,转换过程如下:
| 文本 | M | a | n | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ASCII 编码 | 77 | 97 | 110 | |||||||||||||||||||||
| 二进制位 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
| 索引 | 19 | 22 | 5 | 46 | ||||||||||||||||||||
| Base64 编码 | T | W | F | u | ||||||||||||||||||||