编码与安全指南

Base58 与前导零:原始字节和 Base58Check

保留 Base58 转换中的前导零字节,区分原始编码与带校验的格式。

Nav Tools ·

确认当前字母表

Bitcoin 风格 Base58 省略数字零、大写 O、大写 I 与小写 l 等易混淆字符,其他变体可能不同。

本站采用 Bitcoin 风格字母表,跨系统交付时应明确变体,不能只写 Base58。

Alphabet:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

保留零字节

该字母表中每个前导零字节对应一个前导 1,仅按整数转换会丢失原始字节长度。

下面说明的是字节,不是字符零;应用中复现时需要使用面向字节的库。

Bytes: 00 00 01
Raw Base58: 112
Text "0" has UTF-8 byte 30, not 00.

区分文本输入与字节输入

本站文本编码器处理 UTF-8,输入 000001 会编码六个字符,不是三个原始字节。

用 HEX 工具查看文字对应字节;原始字节样例用于库级验证,不代表本站提供 HEX 输入模式。

原始 Base58 不添加校验

Base58Check 是另一个格式,会在编码前加入协议相关版本信息和校验值,原始 Base58 不做这些。

原始解码器接受字符串不代表地址通过 Base58Check 校验,地址验证应使用目标协议库。

参考资料

← 编码与安全指南