无需登录 数据私有 本地保存

Base32编码解码工具 - 在线文本与Base32互转

25
0
0
0

Base32 编码解码工具

在线文本与 Base32 互转,支持 UTF-8 编码,遵循 RFC 4648 标准

已复制
字符:0 字节:0
已复制
字符:0 字节:0 膨胀率:0%

常见问题与知识点

Base32 是一种基于 32 个可打印字符的二进制数据编码方式。它将任意二进制数据划分为每 5 位一组,每组映射到 32 个字符中的一个。标准字符集(RFC 4648)为:ABCDEFGHIJKLMNOPQRSTUVWXYZ234567。Base32 编码后的体积约为原始数据的 160%(膨胀率约 60%),比 Base64(约 133%)更大,但具有更好的可读性和抗混淆能力。

字符集差异:Base64 使用 64 个字符(含 +/=),Base32 仅使用 32 个字符(字母和数字 2-7)。
编码效率:Base64 膨胀约 33%,Base32 膨胀约 60%,Base64 更紧凑。
适用场景:Base32 常用于 OTP 一次性密码(如 Google Authenticator 的密钥)、恢复密钥产品序列号等需要手动输入且避免混淆的场合。Base32 排除了 0、1、8、9 等易混淆字符,更适合人眼阅读和手动输入。

等号 =填充字符。Base32 编码中,每 5 个原始字节产生 8 个编码字符。如果原始数据字节数不是 5 的倍数,就需要在末尾填充 = 使输出长度达到 8 的倍数:
  • 余 1 字节 → 2 个 Base32 字符 + 6 个 =
  • 余 2 字节 → 4 个 Base32 字符 + 4 个 =
  • 余 3 字节 → 5 个 Base32 字符 + 3 个 =
  • 余 4 字节 → 7 个 Base32 字符 + 1 个 =
本工具在编码时自动添加标准填充,解码时兼容带填充和无填充两种格式。

这是为了最大限度减少视觉混淆
0(数字零) 容易与字母 O 混淆;
1(数字一) 容易与字母 IL 混淆;
8 容易与字母 B 混淆;
9 在某些字体下可能与 gq 混淆。
因此 RFC 4648 标准选择了 26 个大写字母(A-Z)加上 6 个最不易混淆的数字(2-7),共 32 个字符,确保手动输入时的准确率。

本工具遵循 RFC 4648 标准 Base32,字符集为 ABCDEFGHIJKLMNOPQRSTUVWXYZ234567。这是最广泛使用的 Base32 标准,被用于 TOTP/HOTP 双因素认证、各类恢复密钥等场景。解码时自动兼容大小写输入,并支持带或不带填充(=)的 Base32 字符串。

完全正常。Base32 编码会将每 5 个字节(40 位)转换为 8 个字符,因此编码后的长度约为原始字节数的 1.6 倍(膨胀约 60%)。例如,10 字节的数据编码后得到 16 个 Base32 字符。这是 Base32 为了提升可读性和抗混淆能力而做出的效率权衡——比 Base64(约 1.33 倍膨胀)更"浪费"空间,但更适合人眼识别和手动输入场景。