本文目录
什么是 Base58 编码
Base58 是一种二进制转文本的编码方案,旨在将大整数表示为紧凑、便于人工阅读的字符串。它由中本聪为比特币地址而创建,并刻意排除了彼此容易混淆的字符:数字 0、大写 O、小写 l 和大写 I。
Base58 字母表使用 58 个字符:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz。通过移除视觉上易混淆的字符,Base58 减少了地址在朗读、打印或手动输入时的抄写错误 —— 对于金融系统而言,这是一项关键的设计选择,因为一个字符的错误就意味着资金损失。
Base58 编码的工作原理
CheckTown 的 Base58 编码器可在原始文本或十六进制数据与 Base58 编码字符串之间进行转换。
- 输入你的文本或十六进制数据 —— 编码器会将输入转换为其 Base58 表示形式
- 在编码和解码模式之间切换,可双向转换
- 所有处理都在你的浏览器本地进行 —— 不会向任何服务器发送数据
- 一键复制结果,即可用于你的项目或应用程序
免费试用 —— 无需注册
使用 Base58 编码 →Base58 的应用场景
Base58 编码出现在多个以人工可读性和防错为优先的重要系统中。
- 比特币地址 —— 像 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa 这样的钱包地址使用带内置校验和的 Base58Check 编码
- IPFS 内容标识符 —— CIDv0 哈希(以 Qm 开头)使用 Base58btc 编码来表示内容地址
- Flickr 短链接 —— Flickr 率先使用 Base58 来生成紧凑、避免歧义字符的照片 URL
- 瑞波地址 —— XRP Ledger 使用 Base58Check 及一种不同的字母表变体来表示账户地址
常见问题
Base58 和 Base64 有什么区别?
Base64 使用 64 个字符(A-Z、a-z、0-9、+、/),针对紧凑编码二进制数据进行了优化。Base58 使用 58 个字符,通过移除易混淆字符(0、O、l、I)和在 URL 中会引发问题的符号(+、/)来优化人工可读性。Base64 更节省空间,Base58 则更便于用户使用。
什么是 Base58Check?
Base58Check 在进行 Base58 编码之前,会给数据加上一个版本字节前缀和一个 4 字节的校验和后缀。校验和是双重 SHA-256 哈希的前 4 个字节。这使得钱包在发送资金前就能检测出地址中的拼写错误 —— 如果校验和不匹配,则该地址无效。
Base58 编码是可逆的吗?
是的,Base58 编码是完全可逆的。它是一种编码方案,而非加密或哈希。任何 Base58 编码的字符串都可以被解码回其原始的二进制数据,不会丢失任何信息。