Base32编解码
文本与Base32互转,遵循RFC4648标准
这个工具能做什么
这个工具在浏览器里做两件对称的事:把你输入的文本先按 UTF-8 编码成字节,再转成 RFC4648 定义的 Base32 字符串;或者反过来,把一段 Base32 字符串解码还原回原始文本。它面向的是那些不方便用 Base64 的场合——Base64 里含有 + / 等符号,还区分大小写,放进文件名、DNS 标签,或者需要人工抄写、口头传达的地方就容易出错。Base32 只用 A-Z 和 2-7 这 32 个字符,天然大小写不敏感,转录时不容易混淆,代价是编码后体积比 Base64 略大一些。因为它处理的是 UTF-8 字节流而不是字符本身,所以中文等多字节内容也能正常 base32 编码和解码。
Base32 的核心是按每 5 位切一组,而不是按字节的 8 位。8 和 5 的最小公倍数是 40,所以每 5 个字节(40 位)正好切成 8 个 5 位组,各自映射到字母表里的一个字符,输出长度约为输入的 8/5,也就是膨胀 60% 左右(相比之下 Base64 只膨胀约三分之一)。当输入字节数不是 5 的整数倍时,末尾不足 5 位就补 0 凑齐,再用等号 = 把整个输出填充到 8 的倍数;末组余 1、2、3、4 个字节时,分别补 6、4、3、1 个等号。字母表选用 A-Z 和 2-7,跳过了数字 0、1(易与字母 O、I 混淆)以及 8、9。解码则是逆过程:去掉填充,把每个字符换回 5 位,重新拼成 8 位的字节,再按 UTF-8 解回文本。
最典型的场景是和双因素认证打交道。TOTP 动态口令(比如 Google Authenticator、Authy)的共享密钥就是用 Base32 表示的,otpauth:// 链接里那段 secret 正是一串 Base32。你在做或调试 2FA 功能时,可以用这个工具把 secret 解码看它对应的原始随机字节,或者把一段字节编成 secret 填进验证器核对是否一致。另一类常见用法是给二进制标识“换装”:把一段短哈希或随机 ID 编成只含字母数字、大小写不敏感的字符串,拿去做 URL slug、文件名或优惠码,避免大小写在不同系统间被改写而失效。
使用时有几个容易踩的点值得留意。RFC4648 其实定义了两套字母表:标准 Base32(A-Z2-7)和 Base32hex(0-9A-V),此外还有 Crockford Base32、z-base-32 等非 RFC 变体,它们字母表或填充规则不同、互不通用,本工具用的是标准 A-Z2-7,拿别的变体串来解会失败或得到错误结果。解码报错通常是输入里混进了字母表之外的字符(如 0、1、8、9、全角符号或多余空白),或填充等号的数量、位置不对。还要清楚 Base32 只是编码不是加密,任何人拿到字符串都能还原,别把它当作保密手段;解出来若是随机密钥、图片等非文本字节,按 UTF-8 显示成乱码是正常现象。
Base32编解码是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“base32”、“base32编码”、“base32解码”,说的都是这个。
常见使用场景
- 解码 otpauth 链接中的 Base32 密钥核对原始字节
- 生成或校验 Google Authenticator 的共享密钥
- 把二进制 ID 或短哈希编成大小写不敏感的字符串做文件名
- 把 Base32 数据还原成文本排查接口或日志问题
- 学习 RFC4648 时对照理解每一步编码转换
使用方法
- 把内容粘贴到输入框(生成类工具直接设置选项)。
- 按需要选择选项,点操作按钮。
- 结果出现在下方,点「复制结果」即可带走。