梅克尔树python代码
时间: 2023-07-23 16:06:29 浏览: 115
以下是一个简单的实现梅克尔树的 Python 代码:
```python
import hashlib
def merkle_tree(hash_list):
if len(hash_list) == 1:
return hash_list[0]
new_hash_list = []
for i in range(0, len(hash_list)-1, 2):
new_hash = hashlib.sha256((hash_list[i] + hash_list[i+1]).encode('utf-8')).hexdigest()
new_hash_list.append(new_hash)
if len(hash_list) % 2 == 1:
new_hash = hashlib.sha256((hash_list[-1] + hash_list[-1]).encode('utf-8')).hexdigest()
new_hash_list.append(new_hash)
return merkle_tree(new_hash_list)
```
这个函数接受一个哈希值列表,并返回它们的梅克尔树根哈希值。它使用 Python 内置的 hashlib 模块计算 SHA256 哈希值。在每一层中,它将相邻的两个哈希值连接起来并计算它们的哈希值。如果列表长度为奇数,则将最后一个哈希值复制一次,以便能够将其与前一个哈希值配对。最后,当列表中只有一个哈希值时,该值就是梅克尔树的根哈希值。
阅读全文