生成比特币私钥
文章目录
最近研究了研究比特币,水一篇
废话少说,先上代码
|
|
但我们一般不直接用ECDSA私钥做比特币私钥,通常在钱包里导入导出的格式是WIF(Wallet Import Format),这种格式导出后是Base58字符串,以5开头,而压缩格式WIF私钥以K或L开头。
| 格式 | 私钥 |
|---|---|
| 16进制ECDSA | 90b57c1a64fbc39b2e516fcc4f69fa55307d3ddb53da90a66f4da46c6a0f4102 |
| WIF | 5Jv1yc8RLkYhgAn7DveWe9Xm14R9taNbq8A6AkdHY772bc5APZJ |
下面说一下怎么从16进制的ECDSA私钥生成WIF格式的私钥
首先我们有一个ECDSA私钥(大小为32bytes,通常用SHA-256生成)
90b57c1a64fbc39b2e516fcc4f69fa55307d3ddb53da90a66f4da46c6a0f4102 ①
向①头部加入一个值为0x80的字节
8090b57c1a64fbc39b2e516fcc4f69fa55307d3ddb53da90a66f4da46c6a0f4102 ②
计算②的SHA256哈希值
53aef433b9bc580580caa7fb578b0c75ce40e3460c60baba11e3cbf3e4f98ae4③
计算③的SHA256哈希值
c8ce99f17c9064c7517938b685d553f26609a6a180f93b91ab5581b9f459b426 ④
向1的尾部加入④的前4个字节
8090b57c1a64fbc39b2e516fcc4f69fa55307d3ddb53da90a66f4da46c6a0f4102c8ce99f1 ⑤
计算⑤的BASE58值,得到WIF格式的私钥 5Jv1yc8RLkYhgAn7DveWe9Xm14R9taNbq8A6AkdHY772bc5APZJ
嗯,就这么简单,但我当初折腾了好几天…
最后是我的比特币地址 12y5Ph8p4FYfpRzRyAi2MLh2irafY8gwHE 你们看着办吧(手动滑稽)
参考
文章作者 Halulu
上次更新 2019-03-09 (192d09a)