Base32 编码解码
免费在线 Base32 编码解码 工具。100% 本地计算,数据不离开您的设备,隐私安全有保障。
结果将显示在这里...
输入 → 编码
使用指南
关于 Base32
Base32(RFC 4648)使用 32 个 ASCII 字符(A–Z 和 2–7)对二进制数据进行编码。它专为需要仅含字母数字、大小写不敏感输出的场景设计,例如 DNS 标签、文件名和双因素认证密钥。
使用步骤
Base32 是可逆的——同一工具既可编码也可解码:
输出格式
Base32 输出使用大写字母 A–Z 和数字 2–7,并用 = 填充至 8 字符的整数倍。示例:"hello" → "NBSWY3DPEB3W64TMMQ======"。
Base32 与其他编码的对比
根据使用场景选择合适的编码方式:
常见问题
Q: 为什么 Base32 输出末尾有 = 符号?
A: Base32 每个字符编码 5 位,以 5 字节(40 位)为一个处理块。若输入长度不是 5 的倍数,则会添加填充字符(=)以补齐最后一个块。在紧凑存储时可去除填充,解码前重新添加即可。
Q: Base32 在实际中用于哪些场景?
A: 最常见的实际应用是 TOTP/HOTP 密钥——Google Authenticator、Authy 及所有兼容 RFC 6238 的应用均将共享密钥编码为 Base32 字符串。此外,Base32 还用于 DNS(NSEC3 记录)、Tor .onion 地址(v3)、比特币 Bech32 地址,以及不区分大小写的文件系统安全标识符。
Q: 可以解码没有填充字符的 Base32 吗?
A: 可以——本工具接受带或不带尾部 = 填充的 Base32 输入,解码时会自动处理填充问题。
Q: Base32 和 Base32Hex 有什么区别?
A: 标准 Base32(RFC 4648 §6)使用 A–Z + 2–7;Base32Hex(RFC 4648 §7)使用 0–9 + A–V——其排序顺序与原始二进制数据一致,适合有序查找场景。本工具实现的是标准 Base32。
Q: Base32 是加密或安全机制吗?
A: 不是。Base32 仅是一种编码方案,完全可逆,不提供任何保密性或完整性保障。任何人看到 Base32 字符串都能立即解码。如需加密,请使用 AES-256-GCM 或 ChaCha20-Poly1305。
使用场景
推荐:TOTP/HOTP 双因素认证密钥
双因素认证应用(Google Authenticator、Authy、Microsoft Authenticator)将共享 HMAC 密钥编码为 Base32 字符串。扫描二维码配置 2FA 时,嵌入的数据即包含 Base32 编码的密钥。这是 Base32 最主要的现实应用场景。
- ✅ Base32 是 TOTP/HOTP 密钥的标准编码方式(RFC 6238、RFC 4226)
- ✅ 生成兼容身份验证器的共享密钥时使用 Base32
- ❌ 不要将 Base32 编码的密钥与加密或哈希值混淆——它是可逆的
推荐:DNS 安全与大小写不敏感标识符
Base32 输出仅包含字母数字字符(无 +、/、=),结合大小写不敏感特性,适用于 DNS 标签、大小写不敏感文件系统(Windows、macOS HFS+)的文件名以及电子邮件本地部分。
- ✅ Base32 用于 DNS 安全标识符(NSEC3 哈希使用 Base32Hex)
- ✅ Base32 用于需要在大小写折叠中保持稳定的文件名
- ✅ Base32 用于 Tor v3 .onion 主机名
- ❌ 在大小写敏感场景下需要紧凑编码时,优先使用 Base64
可接受:人工抄写码
Base32 避免了部分字体中视觉上容易混淆的字符(0/O、1/l)。数字范围 2–7 专门排除了 0 和 1,使其适合用于印刷码、语音读取标识符或激活密钥。
- ✅ Base32 用于用户可能手动输入的激活码或许可证密钥
- ⚠️ 若需更严格的可读性,考虑使用 Crockford Base32(额外排除 I、L、O、U)
- ❌ Base32 不适合对体积敏感的大型二进制数据——输出约为输入的 1.6 倍
不推荐:通用二进制编码
对于存储或传输任意二进制数据(图片、加密密钥、证书),Base64 是更好的选择——紧凑 25% 且获得广泛支持。Base32 的主要优势(大小写不敏感)在数据不被显示时并无意义。
- ❌ Base32 不适合在 JSON、XML 或 HTTP 头中嵌入二进制文件——请使用 Base64
- ❌ Base32 不适合 PEM 证书或 SSH 密钥材料——请使用 Base64
- ✅ Base64 适用于所有通用二进制文本编码场景
最佳实践总结
- 需要大小写不敏感、仅含字母数字的输出时使用 Base32——主要用于 TOTP 密钥和 DNS 安全标识符。
- Base32 不是加密——输出对任何人都是完全可逆的。
- 在大小写敏感的系统中需要紧凑二进制编码时,优先使用 Base64(效率高 25%)。
- 标准字符集为 A–Z + 2–7(RFC 4648 §6),故意排除数字 0 和 1 以减少抄写错误。