Base58编码/解码器
使用Bitcoin字母表将文本编码为Base58或将Base58字符串解码回纯文本(支持UTF-8)。处理开头的零字节并自动验证Base58字符。
输入
输出
使用指南
Base58是一种由Bitcoin推广的二进制到文本编码方案,使用58个字母数字字符——完整的数字和字母集合中去掉0(零)、O(大写O)、I(大写I)和l(小写l)。这四个字符被特别剔除,因为在许多字体中它们看起来相似,所以Base58字符串相比Base64或普通十六进制,具有更低的误打或误读风险——更适合人类阅读、键入和手工复制。与Base64不同,Base58还避免了+、/和=等标点符号,因此输出始终是单一连续的字母数字token——便于URL、文件名和命令行参数。
用途
- Bitcoin地址及其他加密货币地址 — Bitcoin钱包地址、私钥(WIF格式)和许多山寨币地址都编码为Base58(带有额外校验和步骤,称为Base58Check),使用户能无歧义地转录。
- IPFS内容标识符 — 传统IPFS CID(v0)是Base58编码的多重哈希,使文件哈希能以简短、无歧义的字符串分享。
- 短URL和ID生成器 — 生成紧凑、友好人类阅读、大小写敏感的标识符(短链接、邀请代码)的服务,常因Bitcoin流行所证明的可读性保证而选择Base58。
- QR码和印刷材料 — 字符串可能被大声朗读、手写或OCR的任何场合,Base58的无歧义字母表相比Base64减少了转录错误。
如何使用此工具
- 将文本粘贴到输入框中。
- 选择编码将普通文本转换为Base58,或选择解码将Base58字符串转换回文本。
- 结果自动显示在输出框中——无需点击按钮。使用复制或下载图标获取结果。
编码可接受任何UTF-8文本(文本在Base58编码前进行UTF-8编码,因此表情符号和非拉丁脚本能正确往返)。转换将输入字节视为一个大数,并反复除以58,因此在任何长度下都能正确工作——算法本身不施加实际大小限制。开头的零字节是特殊情况:输入开头的每个0x00字节在输出中变成前导1字符(解码时恢复为0x00字节),因为前导零不承载数值权重,否则会丢失。解码期望仅由有效Base58字符组成的字符串;如果输入包含0、O、I、l或Base58字母表之外的任何字符,或解码字节不是有效UTF-8文本,工具会报告明确错误,而非生成垃圾输出。
常见问题
为什么我的Base58输出比原文本更长? Base58需要每个输入字节对应约1.37个输出字符,因为log(256)/log(58) ≈ 1.37——比Base64的约1.33比例稍微低效一些,但仍然远比将字节编码为十进制或二进制数字紧凑。
这是Bitcoin使用的相同字母表吗?
是的——此工具使用标准的Bitcoin Base58字母表(123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz)。注意:此工具执行的是普通的文本Base58编码/解码;它不添加Base58Check用于真正Bitcoin地址的额外版本字节和SHA-256d校验和。
为什么我不能在解码输入中使用字母「0」或「O」?
这些字符——连同I和l——因在许多字体中易于混淆而被刻意排除在Base58字母表之外。如果您的输入包含它们,解码会报告描述性错误,而非默默产生错误输出。
Base58是加密吗? 不是——Base58既不是加密也不是压缩。它纯粹是一种表示格式;任何人都能立即将其解码回原始数据。不要用它来保护敏感信息。
隐私
所有编码和解码完全在您的浏览器中进行——您的文本不会离开设备或发送到服务器。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/base58-encoder-decoder \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputText": "Hello World!",
"mode": "encode"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `base58-encoder-decoder` tool (Base58 Encoder/Decoder) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.