第二章

Base64 字符集

64 个字符的构成、索引对照表与填充机制

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="

填充字符不仅用于对齐,还能让接收方知道原始数据的确切长度,从而正确解码。