提示:Base32 编码结果通常以 '=' 作为填充字符,长度始终为 8 的倍数。
深度了解 Base32 编码

1. 什么是 Base32?

Base32 是一种将二进制数据编码为可打印字符的方案。它使用由 32 个 ASCII 字符组成的字符集(通常是字母 A-Z 和数字 2-7)。 与 Base64 不同,Base32 专门设计用于**对大小写不敏感**的环境。

2. 为什么选择 Base32 而不是 Base64?

排除歧义
排除了容易混淆的字符(如 0、1、8、9)以及字母 'O'、'I',极大地降低了人工输入时的出错率。
大小写无关
由于字符集中只包含大写字母(或小写),它在那些不区分大小写的文件系统、DNS 记录或口头交流中表现更优。

3. 常见应用场景

  • OTP 身份验证:Google Authenticator 等双重验证工具生成的秘钥(Secret Keys)通常采用 Base32 编码。
  • 文件系统安全:在对大小写不敏感的操作系统(如旧版 Windows 或 macOS)中存储复杂数据。
  • 暗网地址:Tor 网络的 Onion 地址(v2 版本)就是由十六进制转换为 Base32 编码生成的。
  • 磁力链接:BitTorrent 的部分特征码(InfoHash)常以 Base32 形式展现。

4. 编码规范

特性 Base32 (RFC 4648) Base64
字符集大小 32 个字符 64 个字符
空间膨胀率 约 160% (较大) 约 133% (较小)
URL 友好度 天然友好 需特殊处理 (+, /)