Base58 是一种用 58 个字母数字表示字节数据的编码,由比特币采用后流行。下面重点说明能做什么、不能做什么。
Base58的安全边界
区块链地址和要避免 0/O 混淆时用 Base58;通用数据传输用 Base64;OTP 密钥常用 Base32。
与 Base64 相比更短的优势不明显,但去掉了易混字符和符号。与 Base32 相比更紧凑,可是大小写都用,朗读不如 Base32 清晰。它同样不能当加密用。
示例
输入:2026-11-11
编码结果:3pYN3o6QH1USn4
说明:按 UTF-8 共 10 字节,使用比特币 Base58 字母表(不含 0、O、I、l)。
工作原理
把输入当作一个大端无符号大整数,反复除以 58 取余数,余数映射到字母表;最后把输入开头的每个 0x00 写成 “1”。例如 “Hello” 的 Base58 是 9Ajdvzr。比特币地址还要在前后加版本与校验(Base58Check),那是在普通 Base58 之外的规则。
常见报错
- 非法字符 0、O、I、l:字母表不含它们
- 解码结果和预期不同:可能用了 Flickr 字母表
- 地址无效:缺少 Base58Check 校验或校验失败
本站的Base58编码工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【Hello 的 Base58 是什么?】按比特币字母表是 9Ajdvzr。
【为什么没有 0?】避免和字母 O 混淆;字母 I 和 l 也被去掉。
【开头很多 1 代表什么?】输入数据开头的零字节。每个 0x00 对应一个 1。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发