在python

时间:2017-02-14 15:16:44

标签: python sha256 ripemd

我试图理解加密算法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中有一个成熟的方法。建议我使用它不是一个答案 https://stackoverflow.com/a/2124289/4219479

1 个答案:

答案 0 :(得分:0)

glibdud的评论让我得到答案。

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