Base58 编码解码 · 比特币标准工具

支持文本/Hex ↔ Base58 双向转换 | 纯本地安全运行 | 适合区块链开发者与加密爱好者

🔐 Base58 编码 / 解码器
字符数: 0
长度: 0
💡 智能提示:粘贴内容时工具会自动检测格式并推荐合适模式。Base58 字符集不包含 0, O, I, l, +, /,仅含数字、大小写字母(排除混淆字符)。
📘 深入理解 Base58 编码 — 比特币的基石

🔹 什么是 Base58?

Base58 是一种二进制到文本的编码方案,由比特币创始人中本聪引入。它在 Base64 的基础上移除了 容易混淆的字符0 (数字0), O (大写O), I (大写I), l (小写L),以及特殊符号 +/。最终字母表包含 58 个字符:1-9 A-H J-N P-Z a-k m-z,使得编码结果更易于人工阅读、手写和口头传播。

⚙️ Base58 编码核心算法

与 Base64 按位分组不同,Base58 采用大整数进制转换:将输入数据视为一个大整数(256进制),然后不断除以58取余数,余数映射到字母表得到反转字符串。同时,输入中前导零字节 0x00 会被特殊处理,每个前导零转换为一个字符 '1'。这种设计保证了编码结果的确定性,并保留了原始数据的长度信息。

📌 Base58 字母表(58字符):
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

💎 Base58 vs Base64 vs Base58Check

特性Base64Base58Base58Check
字母表大小64 (A-Z a-z 0-9 + /)58 (去除了0,O,I,l,+,/)与 Base58 相同
特殊字符+, /
易混淆性较高(0/O,1/l)极低极低
校验和4字节双SHA256
典型应用电子邮件附件、JSON传输比特币地址、WIF私钥、IPFS CID比特币地址、BIP32扩展密钥

🌐 Base58 主要应用场景

  • 比特币地址:P2PKH 地址以 '1' 开头,P2SH 以 '3' 开头,均使用 Base58Check 编码(带版本和校验和)。
  • WIF 私钥格式:比特币钱包导入格式,Base58Check 编码,以 '5'、'K'、'L' 开头。
  • IPFS 内容标识符(CID):部分编码采用 Base58,便于在分布式网络中传播。
  • Flickr 短链接:早期 Flickr 的短链接服务使用类似 Base58 技术生成短ID。
  • 加密货币领域:几乎所有的山寨币地址都沿用了 Base58Check 编码。

❓ 常见问题(FAQ)

1. 什么是 Base58Check?与普通 Base58 有何区别?
Base58Check 是在 Base58 编码前添加版本前缀(1字节)和末尾添加4字节校验和(双SHA256的前4字节),然后整体进行 Base58 编码。它能防止用户输错地址,广泛应用于比特币地址和私钥。本工具实现的是纯 Base58,不包含校验和与版本字节。
2. 为什么 Base58 编码结果以“1”开头?
因为输入字节中的前导零(0x00)会被转化为字符 '1'。如果原始数据有多个前导零,开头的 '1' 也会相应增多。比特币地址多以 '1' 开头,正是因为版本字节为 0x00。
3. 这个工具支持中文或 Emoji 吗?
完全支持。编码时会将 UTF-8 字节序列进行 Base58 转换,解码后可以完美还原原始文本(包括中文、日文、Emoji 等)。
4. 我的数据会上传到服务器吗?
不会。所有编码/解码操作都使用 JavaScript 在您的浏览器中完成,没有任何网络请求,可以放心处理私密信息。
5. Hex→Base58 模式有什么用?
很多场景下原始数据以十六进制形式提供(比如 32 字节公钥哈希),您可以直接将 Hex 字符串编码为 Base58,方便获得比特币风格的地址表示。
6. 为什么 Base58 输出看起来大小写混合?
字母表设计包含了大小写(大写字母 A-H, J-N, P-Z;小写字母 a-k, m-z),因此 Base58 编码结果是大小写敏感的。请务必原样复制使用。

本工具严格遵循 Bitcoin Core 所使用的 Base58 实现,经测试与主流比特币库(如 bitcoinjs-lib)完全兼容。

📖 快速使用指南 & 示例
  1. 选择工作模式:文本→Base58(普通字符串),Base58→文本(解码),Hex→Base58(十六进制转Base58),Base58→Hex(Base58转十六进制)。
  2. 在输入框中填写相应内容。工具支持实时转换,也可点击“立即转换”。
  3. 点击“示例数据”快速体验,点击“互换”可以交换输入和输出内容,方便连续编解码。
  4. 输出结果可以直接复制,用于区块链开发、应用程序集成或学习研究。

示例:文本 "Hello World" 编码为 Base58 → 2NeXa3D7c8jo7zVFeU;十六进制 "1a2b3c" → Base58 结果 VpT2P。您可以自行验证。