编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / Base32

Base32

Base32 是 RFC 4648 定义的一种二进制到文本的编码方式,把任意字节数据转换成只含 32 个可打印字符的字符串。它的标准字母表是 A-Z 和数字 2-7(共 32 个),刻意避开了容易混淆的 0189。编码时每 5 比特映射为一个字符,因此每 5 个字节(40 比特)正好编成 8 个字符,不足时用 = 补齐到 8 的倍数。

Base64 的核心区别在于字符集与体积:Base32 大小写不敏感(通常用大写),字符集更窄、不含 + / 这类特殊符号,因此适合对大小写不敏感或人工抄写的场景。代价是膨胀更大——数据体积约变为原来的 160%,而 Base64 只有约 133%。常见用途包括:

要点:Base32 只是编码而非加密,任何人都能解码,不提供任何保密性。此外 RFC 4648 还定义了 base32hex 变体(字母表为 0-9A-V),它保持编码后字符串的排序与原始字节一致,两者不可混用。

常见问题

Base32 和 Base64 该怎么选?
对体积敏感、只在程序间传输就用 Base64(膨胀约 33%)。需要大小写不敏感、避免特殊符号、或方便人工抄写/语音读出的场景(如二维码里的 TOTP 密钥)用 Base32,代价是膨胀约 60%。
Base32 编码后的字符串末尾的 = 是什么?
是填充符。因为 5 字节才能凑成 8 个字符,当原始数据长度不是 5 的倍数时,就用 = 把输出补齐到 8 的整数倍。它不携带数据,很多实现允许省略填充,但解码端要能兼容。
为什么 Google Authenticator 的密钥是 Base32?
TOTP 密钥常需要用户手动输入或以二维码呈现,Base32 大小写不敏感、不含易混字符,抄写和识别都更可靠,因此 RFC 6238 相关生态普遍用它来表示密钥种子。

相关工具

相关名词