编码互转

一步把字符串从一种二进制转文本编码转换成另一种。输入先解码成字节,再直接重新编码,中间不会丢失任何数据。

完全在浏览器中运行,不会上传任何数据。

使用方法

  1. 选择输入内容的源编码,例如 Base64。
  2. 选择想要得到的目标编码,例如 Base58。
  3. 粘贴输入内容,即可得到转换结果。
  4. 点击“复制”使用结果,或点击“交换”反向转换。

为什么要转换字节,而不是文本

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
Base643q2+7w==
Base586h8cQN
Base6244pZgF
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,请使用进制转换工具。