比特币钱包导入格式

私钥到WIF

1 - 拿一把私钥

   0C28FCA386C7A227600B2FE50B7CAE _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ 11EC86D3BF1FBE471BE89827E19D72AA1D

2 - 在主网地址前面添加一个0x80字节,在testnet地址上添加0xef。如果私钥对应于压缩的公钥,则在末尾添加0x01字节

   800C28FCA386C7A227600B2FE50B7C _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ AE11EC86D3BF1FBE471BE89827E19D72AA1D

3 - 对扩展密钥执行SHA-256哈希

   8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592

4 - 对SHA-256哈希的结果执行SHA-256哈希

   507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714

5 - 取第二个SHA-256哈希的前4个字节,这是校验和

   507A5B8D

6 - 从第2点的扩展密钥末尾的第5点添加4个校验和字节

   800C28FCA386C7A227600B2FE50B7CAE11EC8 _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ 6D3BF1FBE471BE89827E19D72AA1D507A5B8D

7 - 使用Base58Check编码将结果从字节字符串转换为base58字符串。这是电子钱包导入格式

   5HueCGU8rMjxEXxiPuD5BDk _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ u4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

WIF到私钥

1 - 获取电子钱包导入格式字符串

   5HueCGU8rMjxEXxiPuD5BDk _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ u4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

2 - 使用Base58Check编码将其转换为字节字符串

   800C28FCA386C7A227600B2FE50B7CAE11EC _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ 86D3BF1FBE471BE89827E19D72AA1D507A5B8D

3 - 从字节字符串中删除最后4个校验和字节

   800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

4 - 丢弃第一个字节(应该是0x80)。如果私钥对应于压缩的公钥,也丢弃最后一个字节(它应该是0x01)。如果它对应于压缩的公钥,则WIF字符串将以K或L而不是5(或者在testnet上为c而不是9)开始。这是私钥。

   0C28FCA386C7A227600B2FE50B7CAE1 _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ 1EC86D3BF1FBE471BE89827E19D72AA1D

WIF校验和检查

1 - 获取电子钱包导入格式字符串

   5HueCGU8rMjxEXxiPuD5BD _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ ku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

2 - 使用Base58Check编码将其转换为字节字符串

   800C28FCA386C7A227600B2FE50B7CAE11E _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ C86D3BF1FBE471BE89827E19D72AA1D507A5B8D

3 - 从字节字符串中删除最后4个校验和字节

   800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

3 - 对缩短的字符串执行SHA-256哈希

   8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592

4 - 对SHA-256哈希的结果执行SHA-256哈希

   507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714

5 - 取第二个SHA-256哈希的前4个字节,这是校验和

   507A5B8D

6 - 确保它与第2点的最后4个字节相同

   507A5B8D

7 - 如果是,并且第2点的字节字符串以0x80(testnet地址为0xef)开头,则没有错误。

你可能感兴趣的:(比特币)