Base58Check编码实现
Base58Check编码是在Base58编码的基础上,增加了校验码。
编码流程:
1. 计算原码的SHA-256哈希值
2. 再次计算步骤1结果的SHA-256哈希值
3. 取步骤2的前4字节作为校验码
4. 将步骤3获取的校验码添加到原码末尾
5. 对步骤4的结果进行Base58编码
解码流程:
1. 对编码数据进行Base58解码
2. 去除步骤1结果的校验码,即最末4个字节
3. 计算步骤2结果的SHA-256哈希值
4. 再次计算步骤3结果的SHA-256哈希值
5. 取步骤4结果的前4个字节,并与步骤2中最末4字节进行校验码匹配
6. 匹配成功返回解码数据,否则返回失败
Bitcoin (0.16.0) 编码实现源码:
std::string EncodeBase58Check(const <