Text 至 Base58 转换器
使用 Bitcoin 字母表将文本编码为 Base58,或将 Base58 解码回文本;该字母表省略了 0、O、I 和 l,以避免混淆。该工具会将输入转换为 UTF-8 字节,将前导零字节保留为前导 1 字符,并在解码时检查每个字符。适用于处理 Bitcoin、Solana 和 IPFS 标识符的开发者。输入上限为 10 KiB,因为 Base58 的计算量会呈二次增长。
常见问题
什么是 Base58?
Base58 是一种二进制到文本编码,会将数据视为一个大整数,并以 58 进制表示。它随 Bitcoin 一同引入,可生成紧凑且易于阅读和复制的字符串。其字母表使用数字和字母,但不包含 0、O、I 和 l。
该工具使用哪种字母表?
它使用 Bitcoin 字母表 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz,Solana、IPFS 和大多数库也都使用该字母表。Ripple 和 Flickr 使用不同的顺序,因此不受支持。
可以试试已知示例吗?
文本 hello world 编码后为 StV1DL6CwTryKyV,abc 编码后为 ZiCa。空输入会得到空结果。解码这些字符串会返回原始文本。
这是 Base58Check 吗?
不是。用于 Bitcoin 地址的 Base58Check 会在编码前添加一个版本字节和一个四字节双重 SHA-256 校验和。此工具编码的是原始文本字节,不包含任何校验和。
为什么限制为 10 KiB?
Base58 转换会反复对一个大整数进行除法,因此运算量会随输入长度的平方增长。Base58 面向密钥和地址等短值,10,240 字节远超这些值所需的长度。
如何处理前导零字节?
每个前导零字节都会变成一个前导 1 字符,每个前导 1 解码后都会还原为一个零字节。文本很少以零字节开头,但这样可以确保编码精确无误。
为什么解码时会出现 UTF-8 相关错误?
许多 Base58 字符串(例如公钥或地址)包含的是随机字节,而不是文本。该工具只显示有效的 UTF-8 文本形式的解码数据,因此会报告这类输入,而不会输出无法阅读的字符。
为什么我的输入被判定为无效?
字母表之外的字符(包括 0、O、I、l、中间的空格和标点符号)都不是有效的 Base58 字符。解码前会去除首尾空格。
Base58 是一种加密方式吗?
不是。Base58 是一种无需密钥即可逆转的编码,因此任何人都能解码。它适合提升可读性,不适合保密。
Base58 比 Base64 大吗?
略大。Base58 每字节约需 1.37 个字符,而 Base64 每字节约需 1.33 个字符。这点额外开销换来了不含相似字符或标点符号的字母表。