【问题标题】:Python3; Bitcoin; sha256 hash; private key to wallet import format double hash not working蟒蛇3;比特币; sha256 哈希;钱包导入格式的私钥双哈希不起作用
【发布时间】:2016-08-27 03:17:40
【问题描述】:

我正在尝试将自己的私钥写入 wif 格式代码。我相信我的 base58 编码是正确的,但我没有得到相同的输出。当我进一步回顾我的代码时,我注意到我的双 sha256 哈希的输出不一样,这会导致不同的校验和并把所有东西都扔掉。

这是我的问题所在的一些代码。这部分仅针对这篇文章进行了重写,并省略了我在此问题中不需要显示的所有其他步骤。

import hashlib

a = "800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D"


def double_hash(num):
    first_hash = hashlib.sha256(num.encode()).hexdigest()
    print(first_hash, "first hash")
    second_hash = hashlib.sha256(first_hash.encode()).hexdigest()
    return second_hash


def main():
    print(double_hash(a))


if __name__ == "__main__":
    main()

# ---- Output ----
# >>> e2e4146a36e9c455cf95a4f259f162c353cd419cc3fd0e69ae36d7d1b6cd2c09 first hash
# >>> fe32ab4c7a99d37256148b0dabc6390272ebe2572b943abc2580bfdacac98fbc

# ---- Expected output ----
# 8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592 first hash
# 507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714

这是我的来源:
https://en.bitcoin.it/wiki/Wallet_import_format

【问题讨论】:

    标签: python-3.x hash sha256 private-key bitcoin


    【解决方案1】:

    我什至不知道我是怎么想到的。我在想十六进制数字的字符串表示必须转换为其他数字。因此,我尝试将其转换为二进制格式。从反复试验中,我偶然发现试图取消它并且它起作用了。

    import hashlib
    import binascii
    
    a = "800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D"
    
    
    def double_hash(num):
        first_hash = hashlib.sha256(binascii.unhexlify(num)).hexdigest()
        print(first_hash, "first hash")
        second_hash = hashlib.sha256(binascii.unhexlify(first_hash)).hexdigest()
        return second_hash
    
    
    def main():
        print(double_hash(a))
    
    
    if __name__ == "__main__":
        main()
    
    # ---- Output ----
    # 8147786c4d15106333bf278d71dadaf1079ef2d2440a4dde37d747ded5403592 first hash
    # 507a5b8dfed0fc6fe8801743720cedec06aa5c6fca72b07c49964492fb98a714
    
    # ---- Expected output ----
    # 8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592 first hash
    # 507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714
    

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 2018-08-28
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      相关资源
      最近更新 更多