【问题标题】:Calculate checksum bitcoin on lost bitcoin private key [closed]在丢失的比特币私钥上计算校验和比特币 [关闭]
【发布时间】:2017-12-18 15:32:07
【问题描述】:

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

突然(我想你明白为什么)我决定开始搜索任何零件,但我找到了 6 个中的 3 个!!!!

所以现在我有开始(比方说“5Lagt”)和结束(“Bh3u2YHU2ntQAFTruAYGhJ1xacPJXr3l6k”),所以我只需要在它们之间找到 10 个字母数字字符。

我对编程很陌生,但在大学里有一些 Python 和 C 的基础知识。

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

据我所知,伪代码我需要做以下事情

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

我在理论上理解了一部分,但实际上并不理解。 如果我把它拿回来,我很想给钱包里 10% 的比特币!

【问题讨论】:

  • 虽然我没有理由怀疑 OP 的意图是纯粹的,但我觉得这很容易是邪恶的。主持人干预?
  • 这可能不是解决此类问题的最佳地点。该站点仅用于在您遇到困难时获得帮助。但不能为你做所有事情
  • 我的意思是我不希望你为我完成所有事情。我的主要问题是这种编码?解码?我该怎么办?如何将 WIF 密钥解码为十六进制以及如何获取此校验和进行比较?
  • 这个问题有一些代码:bitcoin.stackexchange.com/questions/25024/…,也许您可​​以在查看此问题后更好地指定您的问题(或已经回答)。
  • 我投票结束这个问题,因为bitcoin.stackexchange.com 会是一个更好的位置

标签: python c cryptography public-key-encryption bitcoin


【解决方案1】:

快速检查校验和,希望它能引导您朝着正确的方向前进:

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 对于那种任务来说太慢了。

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 2014-01-17
    • 2021-12-25
    • 2023-03-13
    • 2020-02-13
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多