
什么是 Base64 字母表
Base64 使用 64 个可打印字符对二进制数据进行编码,因此每 6 位输入映射到一个字符。标准字母表(RFC 4648)按索引顺序为:
A-Z → 0–25
a-z → 26–51
0-9 → 52–61
+ → 62
/ → 63

完整索引表
| Idx | Ch | Idx | Ch | Idx | Ch | Idx | Ch |
|---|---|---|---|---|---|---|---|
| 0 | A | 16 | Q | 32 | g | 48 | w |
| 1 | B | 17 | R | 33 | h | 49 | x |
| 2 | C | 18 | S | 34 | i | 50 | y |
| 3 | D | 19 | T | 35 | j | 51 | z |
| 4 | E | 20 | U | 36 | k | 52 | 0 |
| 5 | F | 21 | V | 37 | l | 53 | 1 |
| 6 | G | 22 | W | 38 | m | 54 | 2 |
| 7 | H | 23 | X | 39 | n | 55 | 3 |
| 8 | I | 24 | Y | 40 | o | 56 | 4 |
| 9 | J | 25 | Z | 41 | p | 57 | 5 |
| 10 | K | 26 | a | 42 | q | 58 | 6 |
| 11 | L | 27 | b | 43 | r | 59 | 7 |
| 12 | M | 28 | c | 44 | s | 60 | 8 |
| 13 | N | 29 | d | 45 | t | 61 | 9 |
| 14 | O | 30 | e | 46 | u | 62 | + |
| 15 | P | 31 | f | 47 | v | 63 | / |

填充如何工作
Base64 以 3 字节(24 位)为一组处理输入,生成 4 个字符。当输入不是 3 字节的倍数时,使用 = 填充输出:
| 输入字节数 | 输出 | 填充 |
|---|---|---|
| 3 | 4 个字符 | 无 |
| 2 | 3 个字符 + = |
一个 = |
| 1 | 2 个字符 + == |
两个 = |
因此 Man → TWFu(无填充),Ma → TWE=,M → TQ==。

Base64url:URL 安全变体
+ 和 / 在 URL 和文件名中不安全,因此 base64url 变体将它们替换为:
| 标准 | Base64url |
|---|---|
+ (62) |
- |
/ (63) |
_ |
= 填充 |
通常省略 |
例如,JWT 对其头部和载荷使用 base64url——这就是为什么你在令牌中看到 - 和 _,但从未看到 + 或 /。
常见问题
Base64 的 64 个字符是什么?
A–Z(0–25)、a–z(26–51)、0–9(52–61)、+(62)和 /(63)。
Base64 中的 = 符号表示什么?
它是填充。一个 = 表示最后一组有 2 个输入字节;== 表示有 1 个。它使输出长度保持为 4 的倍数。
Base64 和 Base64url 有什么区别?
Base64url 将 + 替换为 -,将 / 替换为 _,以便结果在 URL 和文件名中安全,并且通常省略 = 填充。
使用 Base64 转换器 对任何文本进行编码或解码,并查看它与其他编码在 Base64 与十六进制编码 中的比较。