使用方法
- 选择输入内容的源编码,例如 Base64。
- 选择想要得到的目标编码,例如 Base58。
- 粘贴输入内容,即可得到转换结果。
- 点击“复制”使用结果,或点击“交换”反向转换。
为什么要转换字节,而不是文本
Base64、Base58、十六进制以及本站的其他编码,表示的都是字节。先解码成文本再重新编码的做法,只有在数据本身确实是文本时才行得通。密钥、哈希、签名、图片和压缩数据中有大量不是合法 UTF-8 的字节序列,文本解码器会把它们替换成 U+FFFD 替换字符,重新编码后的结果就悄悄出错了。
本工具把源字符串解码成原始字节,再直接用目标编码写出这些字节。32 字节的密钥转换后仍然是 32 字节,开头的零字节也会保留,反向转换得到的字节完全一致。转换全程在浏览器中完成。
常见的转换场景
- Base64 转 Base58:把接口返回的公钥或哈希转换成比特币、Solana 和 IPFS 使用的格式。如果输入是十六进制,请看十六进制转 Base58。
- Base32 转 Base64 或十六进制:查看 TOTP 密钥的内容,或在需要其他格式的系统中复用它。
- 十六进制转 Base62 或 Base58:缩短 URL 中的哈希和 ID。64 位的 SHA-256 十六进制字符串会缩短到 43 个字符左右。
- Base64 转 Base64URL:让值可以安全地放进 URL、Cookie 和 JWT 字段。
- Ascii85、Base85 或 Z85 转 Base64:复用从 PDF 数据流、Git 二进制补丁或 ZeroMQ 消息中取出的数据。
同样的 4 个字节,用五种编码表示:
| 编码 | 结果 |
|---|---|
| 十六进制 | deadbeef |
| Base64 | 3q2+7w== |
| Base58 | 6h8cQN |
| Base62 | 44pZgF |
| Base85 | -mSjx |
输入规则与限制
- Base64 输入可以使用标准字母表或 URL 安全字母表,可以包含换行,也可以省略填充。
- 十六进制输入可以包含空格、冒号或
0x前缀,大小写均可。 - Base58 和 Base62 会把数据当作一个大数处理,因此涉及它们的转换最多支持约 20 KB。
- 工具不会校验或添加校验和。如需验证或生成 Base58Check 字符串,请使用 Base58Check 页面。
常见问题
如何把 Base64 转成 Base58?
源编码选择 Base64,目标编码选择 Base58,然后粘贴字符串即可。Base64 会先解码成字节,再用比特币 Base58 字母表写出,Solana 和 IPFS 使用的也是这套字母表。
这和先解码再编码有什么区别?
只有数据是纯文本时两者才一样。对于密钥、图片这类二进制数据,解码成文本会丢失字节。本工具从不经过文本这一步,字节会被完整保留。
为什么转换后的字符串变长或变短了?
每种编码中一个字符承载的位数不同。十六进制每字节需要 2 个字符,Base58 约 1.37 个,Base64 约 1.33 个。全部编码页面可以并排对比它们。
可以在这里把二进制数转成十进制吗?
不能按数值转换。本页的二进制指把数据的每个字节写成 8 位一组,而不是表示某一个数的值。如果要转换一个数的数值,例如把二进制 1010 转成十进制 10,请使用进制转换工具。