Base58 编解码

Base58 编码与解码(比特币字母表)。

什么是Base58 编解码?

Base58是一种二进制到文本的编码方式,最初由比特币设计者中本聪提出,字母表包含58个字符:0-9、A-Z、a-z,但特意去掉了容易混淆的字符0(数字零)、O(大写字母O)、I(大写字母I)、l(小写字母L),以及+和/这类在URL和双击选中时容易出问题的符号。Base58编解码工具就是在这套字母表下,把任意字节数据编码成一串Base58文本,或反过来解码回原始字节。

为什么使用Base58 编解码?

Base58最典型的应用是比特币地址、以太坊部分钱包展示格式、IPFS的CID(内容标识符)等场景,这些场景都要求编码结果人眼易读、易于口头转述或手抄,且不会因字体渲染混淆(比如0和O长得很像)。相比Base64,Base58编码后的字符串更短且不含+ / =这类特殊符号,不需要URL转义;但计算上Base58需要做大数进制转换,性能比按位处理的Base64略低,不适合超大数据量编码。

使用示例

比特币地址编码

对一段公钥哈希字节数据做Base58Check编码(比特币地址常用的一种Base58+校验和格式)后,得到形如 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM 的比特币地址。

纯文本编码

输入字符串Hello,先转成字节48 65 6C 6C 6F,再做Base58编码,得到一段较短的Base58字符串(具体值取决于是否加版本前缀和校验和)。

解码校验地址

把一个比特币地址(Base58Check格式)粘贴进解码框,工具会输出原始字节并校验和是否匹配,用于快速判断这个地址格式是否合法、是否抄写有误。

使用提示

如果你在核对一个比特币或以太坊地址是否输错,优先使用带Base58Check校验和验证功能的解码,能自动发现抄写错误,而不仅仅是把字符串解码出来。

常见问题

Base58 用在哪些地方?
Base58 常用于比特币地址、IPFS 哈希等场景,去掉了容易混淆的字符(0、O、I、l),编码结果更适合人工识别与传播。
为什么用大数运算实现?
本工具用 BigInt 做任意精度的进制转换,避免普通 Number 在处理长字节串时精度丢失,同时正确保留前导零字节对应的前导 "1"。
数据会上传吗?
不会。编解码全部在浏览器本地用 JavaScript 计算完成。
Base58是加密算法吗?
不是,Base58和Base64一样只是编码方式,用来把二进制数据表示成可打印字符,任何人都能直接解码还原,不提供任何机密性,不要用它保护密码或敏感信息。
Base58和Base64有什么区别?
字母表不同:Base64用64个字符(含+/=)且保留了形近的大小写字符;Base58特意去掉0/O/I/l等易混淆字符,且不含+/=,更适合人工传抄和口述,但编解码计算量比Base64大(涉及大数运算)。
这个工具支持Base58Check(带校验和)吗?
需看具体实现,标准Base58只做进制转换;比特币地址用的是Base58Check,会在数据后附加4字节的双SHA256校验和,解码时能验证数据是否被抄错或损坏,两者不能混用。
能编码任意文件吗?
理论上能编码任意字节数据,但Base58计算开销较大,不适合编码大文件(几MB以上会明显变慢),主要用于短数据如地址、密钥这类几十字节的场景。

相关工具

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。