Base32 编码器

将文本或十六进制字节编码为 Base32(RFC 4648),支持标准 A–Z2–7 字母表或 base32hex。UTF-8 安全,可选填充,在浏览器中运行。

24 个字符 · 28 字节(UTF-8)

0 个字符 · 0 字节(UTF-8)

完全在浏览器中运行,您的数据不会被上传。

什么是 Base32 编码?

使用 RFC 4648 中的 Base32 对文本或原始字节编码。Base32 只使用大写字母和数字 2–7,因此不区分大小写,也避开了容易混淆的字符——这就是它被用于 TOTP 密钥、洋葱地址和不区分大小写的文件系统的原因。

如何使用 Base32 编码

  1. 在输入中输入文本,或将输入格式选为十六进制字节以编码原始字节。
  2. 选择字母表:标准(A–Z、2–7)或扩展十六进制(0–9、A–V)。
  3. 保留或取消添加 = 填充。
  4. 从输出中复制 Base32。

示例

输入
foobar
输出
MZXW6YTBOI======

RFC 4648 第 10 节的测试向量;base32hex 的结果为 CPNMUOJ1E8======。

何时使用 Base32 编码

当编码后的值可能由人手工输入、需要不区分大小写比较,或用于 DNS 名称和文件名时,请选择 Base32。它比输入大 60%(Base64 为 33%),因此在乎体积且大小写会被保留时,应使用 Base64。

Base32 编码 的工作原理

字节被当作比特流读取,并切分为 5 位一组;每组(0–31)选出字母表中的一个字符。5 个输入字节(40 位)恰好得到 8 个字符。较短的最后一块会用零补足为完整的 5 位分组,输出再用 = 补齐到 8 个字符的整数倍。文本会先转换为 UTF-8。

常见用例

  • 为身份验证器应用创建 TOTP/2FA 密钥
  • 生成不区分大小写的标识符
  • 为 DNS 标签或不区分大小写的文件系统编码数据
  • 用已知测试向量检验 RFC 4648 的实现

常见问题

base32hex 是什么?

即 RFC 4648 第 7 节中的“扩展十六进制”字母表(0–9、A–V)。它能保持原始字节的排序顺序,用于 DNSSEC 的 NSEC3 记录。

Base32 和 Crockford Base32 是一回事吗?

不是。Crockford Base32 使用另一套不含 I、L、O 和 U 的字母表;本工具实现的是 RFC 4648 的字母表。

我应该保留 = 填充吗?

对严格遵循 RFC 4648 的使用方请保留。TOTP 密钥通常不带填充显示,而大多数解码器(包括本工具)两种都接受。

探索更多分类