上传文件
  1. base64hub
  2. 其他进制编码

Base32、Base58、Base85 及其他进制编码

粘贴任意一种字符串(支持 30 多种格式),转换器会猜出它是哪种格式,再把字节重新编码为你选择的格式。工具下方介绍了各种编码的对比以及适用场景。

免费 无需注册,不限次数 本地 不上传任何内容 更新于 2026年10月27日
HEXHex 转 Base64输入 hex 转储,输出 Base64 HEXBase64 转 Hex查看原始字节 01Base64 转二进制查看每一位 01二进制转 Base640 和 1 转 Base64 [ ]Base64 转字节数组适用于 C、Java、Python、Go、C#、JS [ ]字节数组转 Base64粘贴任意语言的字节 123Base64 转十进制以十进制数显示字节 123十进制转 Base64字节值转 Base64 32Base32RFC 4648、hex、Crockford、z-base-32 32Base32 解码Base32 转回文本或字节 58Base58比特币、Flickr 与 Ripple 字母表 58Base58 解码Base58 转 hex、文本或 Base64 58Base58Check带版本字节和校验和 58Base64 转 Base58重新编码密钥和哈希 58Base58 转 Base64Solana 与 IPFS 密钥转 Base64 32Base64 转 Base32为 TOTP 应用转换密钥 32Base32 转 Base64Base32 密钥转 Base64 62Base62短 ID 与短链接 36Base36数字加小写字母 85Base85 / Ascii85Adobe、Z85、RFC 1924、git Z85Z85ZeroMQ 的 Base85 91Base91最紧凑的可打印编码 45Base45RFC 9285,适合二维码 16Base16(hex)RFC 4648 Base16 UUUuencode经典的 Unix 二进制转文本编码 XXXxencode字母表更安全的 uuencode HEXHex 转文本把 hex 字节转为可读文本 HEX文本转 Hex任意文本转十六进制字节 01二进制转文本0 和 1 转可读文本 01文本转二进制任意文本转 8 位二进制
输入 0字节 0 B输出 0

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何在任意两种编码之间转换

  1. 把字符串粘贴到输入框。从 设为 自动检测 时,状态行会显示工具判断的格式:“检测到:Base58 · 不对?改按以下格式读取 [Base64] …”。
  2. 如果猜错了,点击其中一个 改按以下格式读取 按钮,或者自己设置 从。
  3. 在 到 中选择目标格式。格式分为几组:文本、Base64、字节与数字、Base32、大数进制、Base85/Base91/Base45,以及电子邮件、URL 与传统格式。
  4. 各格式的选项显示在对应窗格下方,例如 Base58 和 Base62 的 字母表,或 Base32 和 Base64 的 填充(=)。
  5. ⇄ 互换 把输出移到输入,并对调两种格式。复制输出 和 下载 用于获取结果,保存字节 会把解码后的字节下载为文件。

每次转换都要经过原始字节:先解码输入,再把字节重新编码。工具下方的 字节 计数器显示字节数,这往往是确认密钥或哈希是否完整的最快方法。上面列出的各个专用页面打开的也是这个转换器,只是预设了格式。

各种编码对比

编码字母表输出大小额外开销典型用途
Hex / Base1616每字节 2 个字符100%哈希、调试、字节转储
Base3232每 5 字节 8 个字符60%TOTP 密钥、onion 地址、不区分大小写的 ID
Base3636每字节约 1.55 个字符≈ 55%不区分大小写的短 ID 和数字
Base4545每 2 字节 3 个字符50%二维码(欧盟健康证书)
Base5858每字节约 1.37 个字符≈ 37%比特币、Solana、IPFS
Base6262每字节约 1.34 个字符≈ 34%短链接和 ID
Base6464每 3 字节 4 个字符33%电子邮件、JSON、data URI、JWT,几乎无处不在
Ascii85 / Z8585每 4 字节 5 个字符25%PDF、PostScript、Git、ZeroMQ 密钥
basE9191每字节约 1.23 个字符14–23%把数据塞进可打印 ASCII
Uuencode / xxencode64每 3 字节 4 个字符,另加行格式≈ 38%早期电子邮件和 Usenet 附件

额外开销按随机数据计算;对于大数进制,它会随数值相差一两个字符。Base45 在这里看起来很浪费,但在二维码的字母数字模式下,它的 45 个字符每个只占 5.5 个比特,开销因此接近 3%。

以同一个输入为例,下面是 5 字节字符串 Hello 在各编码中的结果:

HexBase32Base36Base45Base58Base62Base64Ascii85basE91
48656c6c6fJBSWY3DP3yud78mn%69 VDL29Ajdvzr5TP3P3vSGVsbG8=87cURDZ>OwJh>A

构造进制编码的三种方式

这些编码可以分为三类,类别能解释它们的大部分行为。

比特分组:hex、Base32、Base64、uuencode 和 xxencode。字母表大小是 2 的幂,所以每个字符承载固定数量的比特(4、5 或 6 个)。编码速度快,可以流式处理,输出长度只取决于输入长度。

固定块:Base45(2 个字节变 3 个字符)和 Base85 家族(4 个字节变 5 个字符)。字母表大小不是 2 的幂,所以把一个小块当作一个数来转换。同样速度快、可流式处理,长度也由输入大小决定。

大数:Base36、Base58 和 Base62。整个输入就是一个数,用新的进制写出来。任何字母表大小都可以,输出也没有填充,但每个字节都会影响每个字符,开头的零字节需要特殊处理,而且计算量随大小的平方增长。本转换器把开头的零字节保留为开头的零位,并把这几种进制的输入上限设为 64 KB。

basE91 介于这几类之间:它每次读取 13 或 14 个比特,所以长度会因内容不同而略有变化。

该选哪种编码

  • 程序与程序之间通信:用 Base64,在 URL 和令牌中用 Base64URL。每种语言都内置了它,没有其他编码比它更通用。
  • 需要人来阅读、输入或口述:用 Base32(最好是 Crockford 变体)或 Base36。两者都不区分大小写;Crockford 还避开了外形相似的字母。
  • URL 中的短不透明 ID:要最短的纯字母数字字符串用 Base62;如果可能需要手抄,用 Base58,因为它去掉了 0、O、I 和 l。
  • 二维码:Base45 配合二维码的字母数字模式。
  • 每个字节都很重要,且通道只支持纯 ASCII:要固定块就用 Ascii85 或 Z85,想再省几个百分点就用 basE91。
  • 查看字节:hex。体积翻倍,但每个字节都是两个可以直接读懂的字符。
  • 传统系统要求使用:uuencode 或 xxencode,新项目不要用。

hex、Base32、Base58 和 Base85 的对比 更深入地分析了它们与 Base64 之间的取舍。

常见问题

表示二进制数据最紧凑的文本编码是哪种?

在常见编码中,basE91 最紧凑(随机数据的额外开销约 23%),其次是 Base85 家族(25%),然后是 Base64(33%)。更紧凑的编码会用到在 JSON、HTML 或 shell 中需要转义的标点符号,所以综合来看 Base64 往往更划算。

URL 中最适合用哪种编码?

机器生成的令牌用 Base64URL,它短小且有标准。如果值只能包含字母和数字,用 Base62 或 Base58;如果必须经得起大小写转换,用 Base32 或 Base36。Base45 和 Base85 含有需要百分号编码的字符。

为什么 Base58、Base62 和 Base36 的输出长度不固定?

它们把输入当作一个大数处理,所以长度既取决于字节数,也取决于数值本身。Base64、Base32 和 hex 映射的是固定的比特分组,相同字节数的输入总是得到相同长度的输出。

自动检测是怎么判断字符串格式的?

它按照各格式的规则逐一检验输入,从特征最明显的(例如 <~ 或 begin 644 这类定界符)到最通用的,并用第一个匹配的格式解码。短字符串可能同时符合好几种格式;可以用“改按以下格式读取”按钮选择另一种解读方式。

这些编码能保护数据吗?

不能。任何人不需要密钥就能把它们还原。它们只是让字节变得可打印。参见 编码与加密的区别。