编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / Base58

Base58

Base58 是一种把二进制数据转成可读文本的编码方式,最早由中本聪为比特币地址设计。它可以看作 Base64 的"精简版":在字母和数字里去掉了 6 个容易看错的字符——数字 0、大写 O、大写 I、小写 l,以及 +/,剩下 58 个字符。这样人工抄写、复制粘贴或口头传达时更不容易出错。

它的原理不像 Base64 那样按固定比特分组,而是把整段字节当作一个大整数,不断对 58 取余、除以 58,得到每一位对应的字符。因此它没有填充符(padding),输出长度也不是整齐的比例(约为原始字节的 1.37 倍);开头的零字节会被特殊处理成前导的 1 以保留信息。

使用时要分清两个概念:

另外,字母表并不唯一,比特币、Ripple、Flickr 用的字符顺序各不相同,跨系统解码前要先确认是同一套。由于涉及大整数运算,Base58 比 Base64 慢,不适合大文件或流式场景。

常见问题

Base58 和 Base64 有什么区别?
Base58 去掉了 0、O、I、l 以及 +、/ 共 6 个易混淆字符,更适合人工识读和复制。但它基于大整数运算、没有填充符,编码速度比 Base64 慢,输出长度也略长。
Base58 能检测数据抄写错误吗?
纯 Base58 只负责编码,本身没有校验功能。比特币地址用的是 Base58Check,额外附带 4 字节校验和,才能发现抄错或输错的字符。
所有系统的 Base58 字母表都一样吗?
不一样。比特币、Ripple、Flickr、IPFS 各有自己的字符顺序,其中比特币字母表最常见。跨系统解码前一定要确认双方用的是同一套字母表,否则结果会错。

相关工具

相关名词