Base32 用 32 个可打印字符(RFC 4648 字母表:A–Z 和 2–7)表示任意二进制数据,每个字符携带 5 个比特,输出通常用 “=” 补齐到 8 的倍数。下面重点说明易错点。
Base32开发注意事项
- 解码前去掉空白,必要时补等号
- TOTP 密钥常省略填充,与标准 RFC 输出可能差几个 =
- 字母 O 不在 RFC 4648 字母表中,出现 O 多半是认错了变体
- 不要用它“隐藏”密码
示例
输入:Hello
编码结果:JBSWY3DP
说明:按 UTF-8 先得到 5 字节,再按 RFC 4648 Base32 编码。
特殊字符
填充规则:余 1 字节补 6 个 =,余 2 补 4 个,余 3 补 3 个,余 4 补 1 个,余 0 不补。
常见报错
- binascii.Error: Incorrect padding:缺少等号,按 8 的倍数补齐
- 非字母表字符:可能用了 Crockford 或其他变体
- 解码后中文乱码:字节的字符集不是 UTF-8
本站的Base32编码工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【Hello 的 Base32 是什么?】JBSWY3DP。
【为什么会有很多等号?】填充。输入字节数不是 5 的倍数时,用 = 补到 8 个字符一组。
【区分大小写吗?】标准字母表是大写;很多解码器也接受小写。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。