在丢失的比特币私钥上计算比特币校验和

2024-10-01 04:44:14 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的故事: 几年前,我把我的比特币私钥拆开,以保证它在不同地方的安全。我失去了一部分,我认为我永远失去了我的比特币。在

突然(我想你明白为什么)我决定开始寻找任何部分,我找到了6个部分中的3个!!!!在

所以现在我有了开始(比如说“5Lagt”)和结束(“bh3u2yhu2ntqaftruyghj1xacpjxr3l6k”),所以我只需要找到10个alfanumeric字符。在

我对编程很不熟悉,但大学时就掌握了一些Python和C的基础知识。在

我读过WIF压缩私钥中的最后一个符号是校验和。在

根据我在伪代码中的理解,我需要做以下工作

  • 将私钥解码为十六进制格式(此08+………+校验和)
  • 排除08和校验和
  • 生成丢失的部分(以某种方式对其进行编码或解码??)在
  • 比较第一个字节(什么字节?)用校验和

我在理论上有一部分理解,但在实践中没有。 如果我把它拿回来的话,我愿意给钱包里10%的比特币!在


Tags: 代码字节编程地方符号解码字符校验
1条回答
网友
1楼 · 发布于 2024-10-01 04:44:14

请看一下校验和检查的快速草图,希望它能指引你正确的方向:

import base58
import hashlib

def check_wif(wif):
    """WIF checksum checking.
    Install base58 before use: `pip install base58`

    >>> check_wif('5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ')
    True
    """
    try:
        wif_bytes = base58.b58decode(wif)
        if wif_bytes[0] != 128:
            return False
        wif_bytes_no_chksum, chksum = wif_bytes[:-4], wif_bytes[-4:]
        wif_bytes_sha256_1 = hashlib.sha256(wif_bytes_no_chksum)
        wif_bytes_sha256_2 = hashlib.sha256(wif_bytes_sha256_1.digest())
        if wif_bytes_sha256_2.digest()[:4] == chksum:
            return True
        else:
            return False
    except ValueError:
        return False

总的来说,python对于这种任务来说太慢了。在

相关问题 更多 >