Base32 用 32 个可打印字符(RFC 4648 字母表:A–Z 和 2–7)表示任意二进制数据,每个字符携带 5 个比特,输出通常用 “=” 补齐到 8 的倍数。下面重点说明长度变化。
Base32与体积、压缩的关系
输出长度约为输入字节数的 8/5,并向上取整到 8 的倍数。5 字节 → 8 字符;1 字节 → 8 字符(带 6 个 =)。
示例
输入:I ♥ Unicode
编码结果:JEQOFGNFEBKW42LDN5SGK===
说明:按 UTF-8 先得到 13 字节,再按 RFC 4648 Base32 编码。
常见用途
- 两步验证(TOTP/HOTP)密钥的常见写法
- DNS 和一些安全令牌
- 避免 Base64 中 + / 在文件名或 URL 里出问题的场合
Go 示例
下面是 Go 中处理Base32的常用写法:
import "encoding/base32"
base32.StdEncoding.EncodeToString([]byte("Hello"))运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的Base32编码工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【区分大小写吗?】标准字母表是大写;很多解码器也接受小写。
【能加密吗?】不能,任何人都可以解码。
【和 Base64 怎么选?】机器传输用 Base64 更短;人要手打、或做 OTP 密钥时用 Base32。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。