【问题标题】:PKHash RipeMD160 in pythonpython中的PKHash RipeMD160
【发布时间】:2017-02-14 15:16:44
【问题描述】:

我正在尝试了解加密算法 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

【问题讨论】:

  • 如果您只是询问如何将字节字符串转换为十六进制字符串,请参阅例如this question。它被要求用于 Python 3,但也适用于 2。

标签: python sha256 ripemd


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 2017-02-07
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多