2.1 64 个字符的构成
Base64 的名字来源于它使用 64 个字符进行编码。这 64 个字符被选出是因为它们是标准 ASCII 字符集中的“安全”字符,在各种系统和协议中都不易被误解或修改。
| 范围索引 | 字符 | 数量 | 用途 |
|---|---|---|---|
| 0 - 25 | A - Z | 26 个 | 大写字母 |
| 26 - 51 | a - z | 26 个 | 小写字母 |
| 52 - 61 | 0 - 9 | 10 个 | 数字 |
| 62 | + | 1 个 | 加号 |
| 63 | / | 1 个 | 斜杠 |
| (填充) | = | - | 特殊填充字符,不属于索引 |
2.2 Base64 字母表
这是完整的 Base64 索引对照表。在编码和解码过程中,我们需要根据这个表在数值(Index)和字符(Char)之间转换。
0 - 15
0: A
1: B
2: C
...
15: P
16 - 31
16: Q
...
25: Z
26: a
...
32 - 47
32: g
...
40: o
...
48 - 63
48: w
...
51: z
52: 0
62: +
63: /
示例说明:
索引 0 对应字符 A,
索引 26 对应字符 a,
索引 63 对应字符 /。
2.3 填充字符 =
Base64 编码通常每 3 个字节一组(24位)。如果原始数据的字节数不是 3 的倍数,就需要使用填充字符 = 来补齐。
补全规则:
- ➊ 余 0 (能整除) → 无填充
示例: "ABC" (3字节) → "QUJD" - ➋ 余 1 (剩1字节) → 补两个 =
示例: "A" (1字节) → "QQ==" - ➌ 余 2 (剩2字节) → 补一个 =
示例: "AB" (2字节) → "QUI="
填充字符不仅用于对齐,还能让接收方知道原始数据的确切长度,从而正确解码。