Base58 编码器和解码器
输入
Base58 是一种二进制到文本的编码,设计时避开了若干容易混淆的字符。Bitcoin 字母表不使用 0 O I l 和 + /,其他系统则会以不同顺序排列相同的 58 个符号。旧式 Bitcoin Base58Check 地址和 IPFS CIDv0 字符串是常见示例。此工具完全在浏览器中运行,可使用 Bitcoin、Ripple 或 Flickr 字母表转换 UTF-8 文本或精确的十六进制字节,并拒绝所选字母表以外的字符。
如何编码和解码 Base58
-
1
输入字节或 Base58 字符串
编码方向接受十六进制或原始文本;解码方向接受 Base58。
-
2
需要时选择字母表
默认是 Bitcoin 的 Base58;也提供 Ripple 和 Flickr 变体用于兼容。
-
3
运行转换
Base58 不会分成整齐的 5 比特或 6 比特组;它会被当作一个大端整数,并反复除以 58。
-
4
复制结果
编码后的字符串会把开头的零字节保留为开头的 `1` 字符(Bitcoin 字母表中表示零的字形)。
Bitcoin Base58 字母表
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
注意缺少的字符:0、O、I、l。字母表中的第一个字符是 1,代表整数 0。
它实际如何工作
不同于 Base64 把比特分成固定组,Base58 会把整个字节串看作一个大端整数 N,并用 58 进制表示:
result = []
while N > 0:
result.prepend(alphabet[N mod 58])
N = N / 58
for each leading zero byte in input:
result.prepend(alphabet[0]) # i.e. '1'
这就是为什么 Base58 编码不适合简单流式处理,你需要拿到整个数字后才能输出任何字符。
Base58 vs Base58Check
旧式 P2PKH 地址的典型 Base58Check 负载为 25 字节:1 字节版本、20 字节哈希和 4 字节校验和。校验和取版本与哈希进行两次 SHA-256 后的前 4 字节。将完整负载编码为 Base58,便得到常见的地址字符串。
此工具只转换普通 Base58。需要检查地址版本和校验和时,请使用专门的 Base58Check 校验器。
字母表变体
| 变体 | 使用场景 | 与 Bitcoin 的差异 |
|---|---|---|
| Bitcoin | BTC 地址、IPFS CIDv0 | 基准 |
| Ripple | XRP 地址 | 位置有交换 |
| Flickr | 短图片 URL | 小写在大写之前 |
为什么不直接用 Base64?
Base64 在二进制和编码文本之间的长度变化固定(每 3 个字节变 4 个字符),效率很高。Base58 开销略有变化,但没有歧义字符;当有人必须手动复制地址或在电话里念出来时,这正是你想要的。
常见问题
不是普遍更好。人类处理字符串时 Base58 更好;机器传输时 Base64 更好。Base64 每个字符编码 6 比特,而 Base58 约为 5.86,所以 Base64 略紧凑。
Base58 编码的是一个大整数,所以长度会根据高位比特不同而差一两个字符。典型的 P2PKH 地址是 34 个字符,但 33 个也可能出现。
此工具可以把字符串解码为原始字节;请选择十六进制输出,以便无损显示任意字节。它不会检查版本或校验和,因此能够解码并不代表地址有效。验证地址需要使用 Base58Check 校验器。
可以。输入开头的每个零字节都会在输出中变成一个 1 字符,这正是以 1 开头的 Bitcoin 地址的工作方式。
相关工具
加密标识符
粘贴密文或哈希值后,系统会显示可能使用的算法或编码方式:MD5、SHA、bcrypt、AES、RSA、Base64等。
Base64 文件编码器
将任意文件(PDF、ZIP、图片、可执行文件)编码为 Base64 文本,用于嵌入 JSON、邮件、YAML 或 data URI。在浏览器本地运行,无需上传。
哈希生成器
从文本生成 MD5、SHA-1、SHA-256、SHA-384、SHA-512 及 CRC32 哈希值,每个摘要均可一键复制,用于校验和与比对。
以太坊兑美元转换器
按实时 ETH/USD 汇率或您自己输入的汇率,将以太坊(ETH)兑换为美元。查看任意数量的 ETH 对应多少美元。
HMAC 生成器
根据消息和密钥生成 HMAC 签名(SHA-256、SHA-384、SHA-512、SHA-1或MD5),用于API认证和Webhook验证。
密码类型识别器
粘贴密文,识别器会给出可能的编码/密码方案:Base64、hex、二进制、摩斯、凯撒或替换、JWT 及常见哈希。
此工具还提供其他语言版本
- Base58-kodare och avkodare [SV]
- Base58-Encoder/Decoder [DE]
- Base58 인코더 및 디코더 [KO]
- Codificador y Decodificador Base58 [ES]
- Base58 encoder en decoder [NL]
- Encoder dan Decoder Base58 [ID]
- Base58エンコーダー・デコーダー [JA]
- مشفر ومفكك Base58 [AR]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- Koder i dekoder Base58 [PL]
- Bộ mã hóa và giải mã Base58 [VI]
- Encodeur et décodeur Base58 [FR]
- Codificador e Decodificador Base58 [PT]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]
- Кодировщик и декодировщик Base58 [RU]
- Base58 Kodlayıcı ve Çözücü [TR]