区块链钱包wallet.dat 删除、丢失、覆盖 定制化恢复-解析比特币钱包、各种代币/山寨币钱包

目录

 

区块链钱包wallet丢失的场景

区块链钱包wallet存储结构分析

区块链钱包wallet数据恢复案例

技术支持


区块链钱包wallet丢失的场景

区块链钱包中包含成对的私钥和公钥,用户用私钥来签名交易,从而证明该用户拥有交易的输出权。但如果用户遭遇病毒破坏、误操作新建钱包覆盖等,导致钱包丢失,就需要进行钱包wallet恢复。


区块链钱包wallet存储结构分析

 目前所有存储在本地的区块链钱包,都遵守私钥-公钥架构,图例如下:

私钥是一个256位随机数,所谓256位就是256个0和1组成的数字,256除以8等于32,即32个字节,用16进制表示这个数的范围大小是介于0x0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间的一个数。

我们随机生成一个合法的私钥如下:8F72F6B29E6E225A36B68DFE333C7CE5E55D83249D3D2CD6332671FA445C4DD3

      椭圆曲线算公钥

生成了私钥之后,我们使用椭圆曲线加密算法(ECDSA-secp256k1)计算0406CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB

  对公钥哈希技术

对上面的公钥进行SHA-256哈希计算,得到结果:2572e5f4a8e77ddf5bb35b9e61c61f66455a4a24bcfd6cb190a8e8ff48fc097d

  计算 RIPEMD-160哈希值

  取上一步结果,进行RIPEMD-160计算,得到结果:

0b14f003d63ab31aef5fedde2b504699547dd1f6

  加入地址版本号

比特币主网版本号“0x00”,取上一步结果,在前面加上16进制的00,即:000b14f003d63ab31aef5fedde2b504699547dd1f6

  计算 SHA-256 哈希值

  取上一步结果,进行SHA-256计算,可得:

 ddc2270f93cc84cc6869dd373f3c340bbf5cb9a8f5559297cc9e5d947aab2536

  然后,对以上结果再次计算 SHA-256 哈希值,得到:

869ac57b83ccf75ca9da8895823562fffb611e3c297d9c2d4612aeeb32850078

  取上一步结果的前4个字节(8位十六进制)869ac57b

把这4个字节加在第五步的结果后面作为校验位,将这4个字节加载第五步的结果后面,这就是比特币地址的16进制形态了:869ac57b000b14f003d63ab31aef5fedde2b504699547dd1f6

  用Base58编码变换地址

  对上一步的结果进行Base58编码,得到:

1QCXRuoxWo5Bya9NxHaVBArBQYhatHJrU7

下图为一个钱包的底层十六进制数据(来源:data-unit ):


区块链钱包wallet数据恢复案例

通过解析区块链钱包的源代码,及钱包dat文件结构,我们从磁盘上恢复出被删除的区块钱钱包(来源:data-unit ):


技术支持

温馨提示:如重要数据丢失,建议在行动前咨询专业工程师,以免数据遭到二次破坏。

直接技术支持:shop396558956.taobao.com

猜你喜欢

转载自blog.csdn.net/weixin_42745590/article/details/105115084