You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

公钥Hex转比特币地址时Base58编码长度异常求助

解决比特币公钥转地址时Base58编码长度异常的问题

看起来你是跳过了比特币地址生成的关键中间步骤,直接对原始公钥做Base58编码才导致结果长度不对的!我来一步步拆解正确的流程,帮你得到标准的34位比特币地址:

正确的比特币地址生成步骤

比特币地址不是直接对公钥做Base58编码,而是需要经过多轮哈希和校验处理,具体步骤如下:

1. 对公钥执行双重哈希(SHA-256 → RIPEMD-160)

你提供的公钥是未压缩格式(以04开头的65字节Hex):

04b4d653fcbb4b96000c99343f23b08a44fa306031e0587f9e657ab4a2541129368d7d9bb05cd8afbdf7705a6540d98028236965553f91bf1c5b4f70073f55b55d

首先将其转换为字节数据,依次执行:

  • 第一次哈希:SHA-256
  • 第二次哈希:RIPEMD-160
    得到20字节的公钥哈希值:
88C2D2FA846282C870A76CADECBE45C4ACD72BB

2. 添加主网版本前缀

比特币主网地址的版本前缀是00(1字节),将其与上一步的20字节公钥哈希拼接,得到21字节的中间数据:

0088C2D2FA846282C870A76CADECBE45C4ACD72BB

3. 生成并添加校验和

对上述21字节数据执行两次SHA-256哈希,取结果的前4字节作为校验和:

655DA121

将校验和拼接到21字节数据末尾,得到最终要编码的25字节完整数据:

0088C2D2FA846282C870A76CADECBE45C4ACD72BB655DA121

4. 执行Base58编码

最后对这25字节数据做Base58编码,就能得到标准的34位比特币地址:

1DU8Hi1sbHTpEP9vViBEkEw6noeUrgKkJH

你出错的原因

你直接对原始65字节的公钥Hex做Base58编码,而公钥本身的字节数远大于最终需要编码的25字节数据,所以得到的结果长度自然会达到68位,不符合比特币地址的标准格式。

只要按照上述完整流程处理,就能得到正确的比特币地址啦!

内容的提问来源于stack exchange,提问作者fluency03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:34:40