Base32 编码器 / 解码器

使用 RFC 4648、Crockford 或 z-base-32 字母表编码和解码 Base32,支持填充与大小写选项,适用于文本和文件,全部在浏览器中完成。

输入内容和文件始终留在浏览器中

输入要编码的文本,或粘贴 Base32 进行解码,也可以在下方拖放文件。

拖放文件到此处

如果选择了文件,将使用文件而非文本输入。

解码选项

编码或解码结果将显示在这里。

本页内容

将文本或文件编码为 Base32 并解码还原,支持三种字母表:RFC 4648、Crockford 和 z-base-32。所有处理都由 Rust 编译的 WebAssembly 模块在浏览器中完成,粘贴的密钥不会被上传。

详细功能

Base32 每个字符存储 5 位,只使用字母和数字,因此结果不怕大小写变化,也便于手工输入或口头传达。RFC 4648 字母表(A–Z、2–7)用于身份验证器应用中的 TOTP 密钥和 Tor 的 onion 地址。Crockford(0–9、去掉 I、L、O、U 的 A–Z)面向人工使用:解码时把 I 和 L 读作 1、O 读作 0,并忽略连字符。z-base-32 使用按易读性排列的小写字母表,从不填充。

= 填充(补足到 8 个字符的倍数)可设为必需、可选或不填充。字母大小写 可强制输出大写或小写,自动 则保持该字母表的惯用写法。所有字母表在解码时都不区分大小写;开启 允许空白字符/换行 后会跳过空格和换行。

文本按所选字符集(UTF-8、UTF-16LE、UTF-16BE、ASCII 或 ISO-8859-1)转换为字节。文件可以选择或拖到页面上,在 Web Worker 中读取,带进度条和 取消 按钮。如果解码出的字节不是有效文本,工具会提示,并且仍可用 下载 保存原始字节。

实用示例

三种字母表:hello 编码为 NBSWY3DP(RFC 4648)、D1JPRV3F(Crockford)和 pb1sa5dx(z-base-32)。

填充与大小写:Hi 在 必需 填充下为 JBUQ====,选 无填充 时为 JBUQ;把 字母大小写 设为 小写 则得到 jbuq====。

解码不区分大小写:JBSWY3DPEE====== 和 jbswy3dpee====== 都解码为 Hello!;无填充的 JBSWY3DPEE 在填充设为 可选 时同样可以解码。

Crockford 容错:使用 Crockford 字母表时,DIJPRV3F(用字母 I 代替 1)和 d1jp-rv3f(小写并带连字符)都解码为 hello。

如何使用此工具

  1. 输入文本或选择文件

    在 输入(文本) 中输入或粘贴文本,或将文件拖到页面上、点击 选择文件。

  2. 选择字母表和填充

    在 字母表 中选择 RFC 4648 (A-Z2-7)、Crockford (0-9A-Z) 或 z-base-32。按需设置 填充、字母大小写,文本不是 UTF-8 时再调整 文本字符集。

  3. 编码或解码

    点击 编码 生成 Base32,或点击 解码 还原文本或字节。请使用生成该字符串时的同一字母表。

  4. 复制或下载

    复制 将结果放入剪贴板,下载 将其保存为文件;二进制结果只能下载。

提示和最佳实践

  • Base32 输出比输入大约多 60%(每 5 字节对应 8 个字符);如果不需要大小写无关,Base64 更紧凑。
  • otpauth:// 二维码中的 TOTP 密钥是 RFC 4648 Base32,通常没有填充:请选择 可选 填充。JBSWY3DPEHPK3PXP 解码后是 10 个原始字节,请用 下载 保存。
  • 填充为 必需 时,JBSWY3DPEE 这类无填充输入会被拒绝,改为 可选 即可。
  • 各字母表不能混用:pb1sa5dx 只有在 z-base-32 下才解码为 hello,按 RFC 4648 则无效。
  • 开启 允许空白字符/换行 时,粘贴的密钥中的空格和换行会被忽略。