123问免费工具与知识服务
123问工具大全› 工具大全› 加密编码› Base58编码

58 Base58编码

Bitcoin标准 · 大整数运算 · 易读编码

Base58 字母表(去掉 0 O I l)

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
注:去掉了数字0、大写O、大写I、小写l,避免视觉混淆

Base58编码 - 最近查询记录

想查看某次查询的完整结果?点击以下记录即可打开对应结果页(含详细解读与常见问题)。

Base58编码常见问题

Base58是什么?

Base58是Base64的变种,去掉容易混淆的字符(0、O、I、l)和非字母数字符号(+、/),被比特币地址广泛使用,也用于IPFS、Flickr短链接等场景。

Base58和Base64有什么区别?

Base58去掉了视觉上易混淆的字符,更适合手动输入和阅读;Base64用4/3的膨胀率更紧凑但含+、/符号。Base58劣势是需要大整数运算,速度稍慢。

为什么要去掉0/O/I/l?

这些字符在不少字体里难以区分(0和O、I和l和1),抄写或口述时极易出错。Base58去掉它们,就是为了减少人工转录错误。

哪些字符被去掉了?

Base58从Base64的64个字符中删掉了:数字0、大写O、大写I、小写l,以及+和/。保留数字1-9开头,避免以前导0开头造成歧义。

Base58和Base58Check是一回事吗?

不是。Base58Check是在Base58基础上,末尾附加4字节校验和(对数据做两次SHA256取前4字节Hex后再Base58),比特币地址用的就是Base58Check,能检测抄写错误。

Base58能编码二进制数据吗?

能。Base58本质是把字节串转成一个大整数再按58进制展开,任何二进制数据都能编码。本工具内部就是先把UTF-8文本转字节再编码。

为什么Base58编码速度比Base64慢?

Base64每3字节直接映射4字符,只用查表;Base58要把整个字节串当作一个大整数反复除以58,涉及大整数运算,数据越长越明显。

Base58是加密吗?

不是。它只是编码,任何人解码就还原,没有任何保密性。别把它当加密用。

Base58编码 - 示例演示

示例一:编码一段文本

输入:文本"Hello Base58"(UTF-8)
结果:得到一串由Base58字母表组成的字符串,不含0/O/I/l/+/
这是最基本的文本→Base58转换,可用于构造短链接标识。

示例二:解码还原

输入:把示例一的Base58字符串粘贴回来
结果:还原为"Hello Base58"
Base58是可逆编码,解码与编码互为逆运算。

示例三:比特币地址思路

输入:对一段数据做Base58Check(数据+4字节SHA256校验)
结果:得到形如"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"的地址
比特币地址就是Base58Check编码,末尾的校验位能发现抄写错误。

Base58编码深度解读

Base58的字母表构成

Base58字母表共58个字符,从Base64的64个字符里剔除了6个易混淆/特殊字符。

Base58 字母表(Bitcoin标准)
类型字符数量
数字1 2 3 4 5 6 7 8 99个
大写字母A B C D E F G H J K L M N P Q R S T U V W X Y Z24个(去掉I、O)
小写字母a b c d e f g h i j k m n o p q r s t u v w x y z25个(去掉l)
已剔除0 O I l + /6个

注意数字0被剔除,但数字1保留,所以Base58字符串不会以0开头。

Base58 与 Base58Check

  • Base58:数据直接编码,无校验。
  • Base58Check:先计算数据两次SHA256,取前4字节作为校验和。
  • 把校验和追加到数据末尾,再整体Base58编码。
  • 解码时重算校验和比对,不一致则说明输入有误。
  • 比特币地址、一些加密货币地址都用Base58Check。

正是这4字节校验,让手抄地址抄错时能被及时发现。

Base58 的典型应用

Base58的应用场景
场景用途特点
比特币地址Base58Check编码人类可读、可校验
IPFS CID兼容Base58链接可共享
Flickr短ID短链标识短小易读
部分加密密钥展示Base58编码便于人工抄录

凡是"需要人眼阅读、手写、口述"的标识,都比较适合用Base58。

Base58编码参考数据

常见编码方案对比

编码字符集膨胀率易混淆字符校验
Base6464约4/3有(+ /)无
Base5858约1.37倍无可选Check
Base3232约8/5较少可选
Hex162倍无可选

Base58 vs Base64 对同一数据

数据Base58结果长度Base64结果长度
短文本略短略长
较长文本约1.37×原长约1.33×原长
含特殊字节不含+/可能含+/

使用说明

使用方法

1. 输入文本(UTF-8)。

2. 点击"编码"将文本转为Base58。

3. 输入Base58字符串,点击"解码"恢复原文。

4. 查看Base58字母表。

分享工具: Facebook Twitter 微博 复制链接