【发布时间】: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
【问题讨论】:
标签: python-3.x hash sha256 private-key bitcoin