python 中的 PKHash RipeMD160

PKHash RipeMD160 in python

我正在尝试了解加密算法 RIPEMD 和 SHA256 的工作原理。比特币计算PKHash的方法是RIPEMD160(SHA256(PublicKey)).

我正在尝试首先实现 SHA256(PublicKey) 的 RIPEMD。

pkHashStep1=hashlib.sha256(public_key.decode('hex')).digest()
print 'MyTransaction pkHashStep1 {}'.format(pkHashStep1)

MyTransaction pkHashStep1 ▒▒▒so▒/▒▒e▒▒▒¡▒7▒?9▒▒.▒ӟ!n▒h

这样输出的字符串我不能直接用,但是hashlib库可以用这个。尝试 pkHashStep1.decode('hex') 和 bin(pkHashStep1) 会引发错误。它如何将哈希值转换为可用的 hexstring/bin??

目前,我有 publicKey 作为我的 RipeMD 方法的输入,而不是 pkHashStep1,并且必须单独执行

input=hashlib.sha256(publicKey.decode('hex')).hexdigest()

仅供参考:我知道 hashlib 中有一个 ripemd 方法。建议我使用它不是答案

glibdud 的评论让我找到了答案。

hashlib.sha256(public_key.decode('hex')).digest().encode('hex')=
hashlib.sha256(public_key.decode('hex')).hexdigest()