【发布时间】:2018-12-16 04:11:41
【问题描述】:
我了解到您有一个十六进制字符串并对其执行两次 SHA256,然后对最终的十六进制字符串进行字节交换。此代码的目标是通过连接两个交易来找到 Merkle Root。我想更多地了解背景中发生的事情。你到底在解码和编码什么?
导入哈希库
transaction_hex = "93a05cac6ae03dd55172534c53be0738a50257bb3be69fff2c7595d677ad53666e344634584d07b8d8bc017680f342bc6aad523da31bc2b19e1ec0921078e872"
transaction_bin = transaction_hex.decode('hex')
hash = hashlib.sha256(hashlib.sha256(transaction_bin).digest()).digest()
hash.encode('hex_codec') '38805219c8ac7e9a96416d706dc1d8f638b12f46b94dfd1362b5d16cf62e68ff'
hash[::-1].encode('hex_codec') 'ff682ef66cd1b56213fd4db9462fb138f6d8c16d706d41969a7eacc819528038'
【问题讨论】:
-
你想在这里描述什么协议?你所说的听起来不正常。
-
你用的是python 2还是python 3?
-
您将字节(整数)编码为来自
[0-9a-f]的小写ASCII字符字符串 -
This answer 可能有帮助吗?
-
@BenStolman 哦,这是比特币吗?请在问题中包含该信息——现在你还没有在任何地方解释过。
标签: encoding decoding sha256 sha hashlib