【发布时间】:2020-09-13 16:48:37
【问题描述】:
这个脚本生成了一个哈希,但是它没有正确地在函数中写入一些东西。
from bitcoin import *
import os
import hashlib
import base58
while True:
priv = random_key()
pubkey = privtopub(priv)
compress_pubkey = False
if (compress_pubkey):
if (ord(pubkey[-2:].decode('hex')) % 2 == 0):
pubkey_compressed = '02'
else:
pubkey_compressed = '03'
pubkey_compressed += pubkey[2:66]
hex_str = bytearray.fromhex(pubkey_compressed)
else:
hex_str = bytearray.fromhex(pubkey)
key_hash = hash160(hex_str)
def hash160(hex_str):
sha = hashlib.sha256()
rip = hashlib.new('ripemd160')
sha.update(hex_str)
rip.update( sha.digest() )
print ( "key_hash = \t" + rip.hexdigest() )
return rip.hexdigest() # .hexdigest() is hex ASCII
我检查了脚本是否正常工作。做了print (pubkey)。结果显示了公钥,但我不需要获取 key_hash。不幸的是,当我这样做时print ("key_hash = \ t" + rip.hexdigest ())
结果不执行!我不懂编程。帮助修复代码!
【问题讨论】:
-
好吧,你在定义它之前调用
hash160 -
请注意,您正在调用
hash160()在您实际定义该函数之前。这段代码实际上可以无错误运行的唯一方法是,如果您的其中一个导入(必须是bitcoin)引入了它自己的同名函数;那个版本的hash160()显然不包含print语句。 -
@Carcigenicate 需要做什么才能显示结果?
-
@jasonharper 我需要如何以及在 hash160 () 中进行哪些更改?
标签: python python-3.x random hashlib