Base32 编解码
Base32 (RFC4648) 编码与解码。
什么是Base32 编解码?
Base32 是一种把二进制数据编码成纯文本(ASCII 字符)的编码方式,遵循 RFC 4648 标准,只使用 A-Z 和数字 2-7 共 32 个字符(不区分大小写,且刻意去掉了容易与字母混淆的 0、1、8、9),编码后可能用 = 补齐长度。 它和 Base64 目的相同——让二进制数据能安全地放进只支持文本的场景(URL、文件名、语音报读、某些不区分大小写的系统)——但字符集更小、更不容易被人读错或听错。
为什么使用Base32 编解码?
Base32 最常见的实际用途是 TOTP 动态口令(如 Google Authenticator、各类二次验证 App)的密钥格式:网站生成的二次验证密钥几乎都是 Base32 编码的字符串,因为它可以让用户手动输入密钥时不区分大小写、且没有容易混淆的字符。此外 Base32 也用于某些文件系统对大小写不敏感的场景、DNS 相关编码、以及需要「人类可读性」优先于编码密度的场合。 和 Base64 相比,Base32 编码后的字符串更长(每字符只携带 5 bit 而不是 6 bit),但抗听写/抄写错误能力更强;和十六进制相比,Base32 编码密度更高。需要强调的是,Base32 只是编码方式,不是加密算法,任何人拿到编码后的字符串都能直接还原出原始数据,不提供任何机密性。
使用示例
编码文本
输入文本 "Hello",Base32 编码结果为 JBSWY3DP(无需补齐 = 号,因为 5 字节恰好编码为 8 个字符)。
编码带补位
输入 "Hi"(2 字节),编码结果为 JBQQ====,末尾的 = 是为了让输出长度凑成 8 的倍数而做的填充。
解码 TOTP 密钥
网站给出的二次验证密钥类似 JBSWY3DPEHPK3PXP,把它粘贴进解码框可以还原出原始的二进制密钥字节,用于核对该密钥是否和另一处配置一致。
使用提示
如果解码时报错或者结果乱码,先检查字符串里是否混入了小写字母之外的非法字符(比如误把 O 看成 0、把 I 看成 1),Base32 字母表里没有数字 0、1、8、9,遇到这些字符基本可以判断输入有误。
常见问题
Base32 和 Base64 有什么区别?
支持中文 / UTF-8 吗?
数据会上传吗?
Base32 是加密吗,安全吗?
和 Base64 有什么区别,该用哪个?
为什么末尾会有多个等号?
能处理中文等非 ASCII 文本吗?
相关工具
← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。