编码与安全指南
Base58 与前导零:原始字节和 Base58Check
保留 Base58 转换中的前导零字节,区分原始编码与带校验的格式。
确认当前字母表
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 校验,地址验证应使用目标协议库。