Base58编码解码工具

专业在线Base58编码解码工具,支持字符串和十六进制数据的Base58编码与解码

输入内容

编码结果

Base58编码解码原理与应用

Base58 简介与起源

Base58 是一种“二进制转文本”的编码方式,由 比特币(Bitcoin) 项目在 2009 年前后引入并推广,首次出现在比特币参考实现中。其核心目标是:在不牺牲太多编码效率的前提下,让编码结果更适合人类阅读、抄写与口头传递,并减少因字符相似而导致的错误。

Base58 并非 IETF 等标准化组织发布的“标准”,但在区块链与去中心化存储生态中被广泛采用(如 Bitcoin、IPFS、Filecoin 等)。

标准Base58字符表

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

共58个字符:1-9 (9个),A-Z(去掉 I、O)(24个),a-z(去掉 l)(25个)

被排除的易混淆/特殊字符:0 O I l + / =

Base58 与 Base64 的区别

对比项Base58Base64
字符集大小58 个64 个
字符选择数字 + 大小写字母,剔除易混淆字符数字 + 大小写字母 + + /
填充字符无填充= 填充到 4 的倍数长度
可读性/抄写友好更适合人类核对、手写、口述不适合手写(含符号、易换行)
编码效率(同数据长度)稍低(字符集更小)更高(字符集更大)
典型用途区块链地址、私钥、IPFS CID 等URL 参数(变体)、邮件附件、数据传输等

编码原理(256 进制 → 58 进制)

  1. 统计输入字节数组的前导零字节数量(用于后续恢复)。
  2. 将字节数组视为一个大整数(按 256 进制解析)。
  3. 用这个大整数反复除以 58,取余数作为 Base58 字符索引。
  4. 将余数序列倒序,得到基础编码结果。
  5. 在结果前补回与前导零字节数相同的 '1''1' 对应字节 0x00)。

解码原理(58 进制 → 256 进制)

  1. 统计 Base58 字符串的前导 '1' 数量(对应解码后的前导零字节)。
  2. 将 Base58 字符串按 58 进制解析为一个大整数。
  3. 将大整数转换为字节数组(按 256 进制拆分)。
  4. 在字节数组前补回统计到的零字节。
  5. 输出最终二进制数据。

常见应用场景

  • 比特币生态:地址、WIF 私钥、部分脚本与扩展公钥表示。
  • IPFS / libp2p:早期 CID(如 Qm...)常用 Base58 编码。
  • Filecoin / 部分区块链:地址、矿工 ID 等标识。

已知的测试用例

输入Base58编码结果说明
"Hello World"JxF12TrwUP45BMd标准测试用例
"Bitcoin"4jJc4sAwPs短字符串测试
空字符串""边界测试
0x00 (1字节)"1"单个零字节
0x0000 (2字节)"11"多个零字节