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

Base58编解码

Base58 编码和解码。

输入
结果

这个工具能做什么

这个工具把你输入的文本按 UTF-8 编码成字节,再用比特币采用的 58 字符字母表转成 Base58 字符串;反向粘贴一段 Base58 文本,它会解码还原成原始内容。和 Base64 相比,Base58 编码最大的卖点是字母表里剔除了容易看混的四个字符——数字 0、大写 O、大写 I、小写 l,所以结果串更适合人工抄写、口头念出或印在纸上而不出错。它同时去掉了 + / = 这类符号,整串只含字母和数字,双击能一次选中,贴进 URL 也不用再转义。本地处理不上传,适合临时对一小段数据做 Base58 编解码核对。

Base58 编码的核心,是把整段字节当成一个 base-256 的大整数,然后不断除以 58 取余,把每个余数映射到字母表对应字符,这是标准的进制转换,而不是像 Base64 那样按每 3 字节切一组做定长映射。因为 58 不是 2 的幂,编码没法按块对齐,必须做大整数运算,输出长度也不是固定比例,大致是原始字节数的 1.37 倍(log256/log58≈1.365)。开头连续的 0x00 字节会被单独处理:每个前导零字节都对应输出一个字符 1(字母表首字符),这样才能保住会在大整数里丢失的前导零。Base58 解码就是逆过程,把每个字符还原成 0 到 57 的数字,按 58 进制累加回大整数,再拆成字节。

最常见的场景是和加密货币、去中心化存储打交道:比特币地址、IPFS 的 CIDv0 都是 Base58 形态,当你手头有一段疑似 Base58 的字符串,想快速看看它解出来是什么字节、是不是可读文本,粘进来做一次 Base58 转换就知道。另一个场景是生成短标识:比如把一个自增 ID 或短随机串编成 Base58 当短链接后缀、优惠码,既紧凑又不会出现 0 和 O、1 和 l、I 这种让用户输错的组合。做接口联调时,也可以拿它对照另一端的 Base58 实现,确认双方字母表和字节序一致。

要注意这里做的是纯 Base58,不是比特币真正用的 Base58Check——后者会在数据前加版本字节、末尾附 4 字节双 SHA-256 校验和,本工具不加版本、不算校验,也不会校验地址合法性,所以别指望它验证一个比特币地址真伪。字母表方面业界并不统一,比特币 base58 用的是这一套,Ripple、Flickr 各有排列,同一段字节用不同字母表编出来的串不通用,解码前要确认对方也用比特币字母表。还有,Base58 只是编码不是加密,任何人拿到串都能还原,别用来保护密码或敏感信息;需要压缩体积时它也不如 Base64 高效,它胜在抗抄写歧义而非空间效率。

Base58编解码是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“base58”、“base58编码”、“base58解码”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

Base58 和 Base64 有什么区别?
Base64 用 64 个字符按每 3 字节定长分组编码,效率高、可流式处理;Base58 只用 58 个字符、去掉了易混淆的 0OIl 和 +/= 符号,靠大整数进制转换实现,输出略长但更适合人工识读和放进 URL。
这个工具能解码比特币地址、验证地址合法性吗?
它只做纯 Base58 编解码,不处理 Base58Check 的版本字节和校验和,也不做地址合法性校验;你可以把地址解成原始字节来看,但末尾那 4 字节校验和不会被识别或验证。
为什么 Base58 里没有 0、O、I、l 这几个字符?
这四个字符(数字零、大写 O、大写 i、小写 L)在很多字体里长得几乎一样,去掉它们能避免人工抄写、口述地址时看错输错,这也是 Base58 相比 Base64 的主要设计目的。
同样一段文字,别的网站编出来的 Base58 和这里不一样,是 bug 吗?
大概率是字母表不同。Base58 的字符排列没有唯一标准,比特币、Ripple、Flickr 各用一套,本工具用的是比特币字母表;字母表不一致时,编码结果和解码含义都对不上。
中文或 emoji 能正常 Base58 编解码吗?
可以,工具先按 UTF-8 把文本转成字节再做 Base58,中文、emoji 等多字节字符都能编码;解码时同样按 UTF-8 还原,只要原文当初也是 UTF-8 就能完整还原。

相关工具

查看全部「编码解码」工具 →

相关名词解释