正在加载,请稍候…

Base64 字母表:64 个字符与索引参考

完整的 Base64 字符集——64 个索引到字符的映射(A–Z、a–z、0–9、+、/),= 填充的工作原理,以及适用于 URL 的 Base64url 变体

Base64 字母表:64 个字符与索引参考

什么是 Base64 字母表

Base64 使用 64 个可打印字符对二进制数据进行编码,因此每 6 位输入映射到一个字符。标准字母表(RFC 4648)按索引顺序为:

A-Z  →  0–25
a-z  →  26–51
0-9  →  52–61
+    →  62
/    →  63

Base64 字母表:64 个字符与索引参考 示意图

完整索引表

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 字母表:64 个字符与索引参考 示意图

填充如何工作

Base64 以 3 字节(24 位)为一组处理输入,生成 4 个字符。当输入不是 3 字节的倍数时,使用 = 填充输出:

输入字节数 输出 填充
3 4 个字符
2 3 个字符 + = 一个 =
1 2 个字符 + == 两个 =

因此 ManTWFu(无填充),MaTWE=MTQ==

Base64 字母表:64 个字符与索引参考 示意图

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 与十六进制编码 中的比较。