我试图了解加密算法 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) 会引发错误。它如何将哈希转换为可用的十六进制字符串/bin?
目前,我将 publicKey 作为 RipeMD 方法的输入,而不是 pkHashStep1,并且必须单独执行
input=hashlib.sha256(publicKey.decode('hex')).hexdigest()
仅供参考:我知道 hashlib 中有一个成熟的方法。建议我使用它不是答案 https://stackoverflow.com/a/2124289/4219479