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

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解码”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

Base32 和 Base64 有什么区别,我该用哪个?
两者都是把二进制转成可打印文本的编码,都不是加密。Base64 用 64 个字符、体积只膨胀约三分之一,但含 +/= 且区分大小写;Base32 只用 A-Z 和 2-7、大小写不敏感、更抗抄写错误,代价是体积膨胀约 60%。需要放进大小写不敏感环境(文件名、DNS、人工转录、TOTP 密钥)时用 Base32,追求紧凑就用 Base64。
为什么编码结果末尾有一串等号 =?
等号是 RFC4648 规定的填充符,用来把输出补齐到 8 个字符的整数倍。当原始字节数不是 5 的倍数时才会出现,末组余 1、2、3、4 个字节分别补 6、4、3、1 个等号。它不携带数据,只起对齐作用。
支持中文吗?中文是怎么被编码的?
支持。工具先把文本按 UTF-8 编码成字节,再对字节做 Base32,所以一个常见汉字对应 3 个字节、编码后会明显变长。解码时按 UTF-8 反向还原,只要原串是合法 Base32 且原文本确实是 UTF-8,就能正确显示中文。
解码时报错或结果是乱码,是什么原因?
报错多半是输入含字母表之外的字符(如 0、1、8、9、全角符号、多余空格换行)或填充等号数量、位置不对。若能解出但显示为乱码,通常是这段 Base32 对应的字节本就不是 UTF-8 文本,比如它是随机密钥、哈希或图片字节,这属于正常现象。
用它编解码密钥、令牌安全吗,数据会不会上传?
整个编解码过程在浏览器本地用 JavaScript 完成,本地处理不上传服务器,适合处理密钥、令牌这类敏感数据。但要清楚 Base32 只是编码不是加密,任何人拿到字符串都能还原,不要把它当成保密或防护手段。

相关工具

查看全部「编码解码」工具 →

相关名词解释