Base32编码/解码器
将文本编码为Base32或将Base32字符串解码回纯文本(支持UTF-8,RFC 4648)。自动处理填充并验证Base32字符。
输入
输出
使用指南
Base32是一种由RFC 4648定义的二进制到文本编码方案,使用仅有的32个字符A–Z和2–7表示任意字节,并用=填充至输出字符数的8的倍数。与Base64不同,Base32输出不区分大小写,且避免视觉上模糊的字符(没有0/O或1/I混淆),因此常出现在供人类键入或阅读的场合,而不仅是供机器复制。
用途
- TOTP/2FA密钥 — Google身份验证器、Authy及类似应用背后的共享密钥(RFC 6238规定)几乎总是编码为Base32,以便手动输入或嵌入到QR码URI中。
- 适用于DNS的编码 — DNS标签不区分大小写且限制允许字符,因此需要将二进制数据(哈希、标识符)放入主机名的系统通常使用Base32而非Base64。
- 适用于文件系统的标识符 — Base32受限字母表避免了在不区分大小写的文件系统中具有特殊意义的字符(如传统Windows/macOS默认),不同于Base64的
+、/和大小写混用。 - 人类可读的令牌 — 可能需要大声阅读或转录的代码(恢复密钥、许可证密钥、硬件序列号)通常出于相同的模糊性 avoidance 原因使用Base32。
如何使用此工具
- 将文本粘贴到输入框中。
- 选择编码将普通文本转换为Base32,或选择解码将Base32字符串转换回文本。
- 结果会自动显示在输出框中——无需点击按钮。使用复制或下载图标获取结果。
编码可接受任何UTF-8文本(文本在Base32编码前进行UTF-8编码,因此表情符号和非拉丁脚本能正确往返)。解码期望具有正确=填充的有效Base32字符串;如果解码字节不是有效UTF-8文本,或输入包含A–Z、2–7、=之外的字符,工具会报告明确的错误,而非生成垃圾输出。
常见问题
为什么我的Base32输出比原文本更长? Base32将输入的每5位编码为一个输出字符,因此它总是扩展数据——每5个输入字节对应约8个输出字符(大小增加约60%),外加填充。这是正常的,与RFC 4648规范完全一致。
Base32和Base64是一样的吗? 不。两者都是二进制到文本编码,但Base64使用64字符字母表(输出更紧凑),而Base32使用32字符字母表(输出更大,但不区分大小写且无模糊字符)。对紧凑性使用Base64;当结果需要键入、朗读或嵌入到不区分大小写的场所(如TOTP密钥)时使用Base32。
Base32是加密吗? 不是——Base32既不是加密也不是压缩。它纯粹是一种表示格式;任何人都能立即将其解码回原始数据。不要用它来保护敏感信息。
为什么解码有时会失败?
Base32要求输入长度(包括=填充)是8字符的倍数,且依赖于前面数据字符的数量决定具体填充数量。如果填充缺失、错误,或字符串包含Base32字母表之外的字符,解码会报告描述性错误,而非默默返回错误字节。
隐私
所有编码和解码完全在您的浏览器中进行——您的文本不会离开设备或发送到服务器。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/base32-encoder-decoder \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputText": "foobar",
"mode": "encode"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `base32-encoder-decoder` tool (Base32 Encoder/Decoder) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.