跳到主要内容
uencoder

Base58

Base58 是一种面向人类的二进制转文本编码,使用 58 个字符(去掉 Base64 中易混淆的 0、O、I、l、+、/),常用于加密货币地址。

用途

避免人工抄写时易混淆字符(0/O、I/l)造成的错误,同时使输出可双击选中(不含会被终端截断的字符)。

机制

将输入字节流当作大整数,反复对 58 取余得到各字符索引(类似进制转换);前导零字节映射为前导 1。由于非按位对齐,编码长度不固定且解码需大整数运算。

用例

  • Bitcoin / Litecoin 地址编码
  • IPFS CID 的 multibase 表示
  • Monero 门罗币地址
  • 短链接与邀请码生成

示例

  • 输入
    Hello World
    输出
    JxF12TrwUP45BMd

    The Bitcoin Base58 alphabet

常见错误

Assuming Base58 works on 6-bit groups (it is actually big-integer modulo arithmetic)
Use a big-integer, byte-by-byte implementation or a mature library

相关词条

相关工具

参考链接