Переменные хеши в питоне

Я пытаюсь реализовать дерево Меркель в Python. Вот мой текущий код (Incomplete)

Код:

from random import randint
import math
import sys


#First create a leaf node with some data
#Creates the Hash of L1
class Leaf():
    def __init__(self,x):
        self.data = x
        self.recompute()

    def write(self,new_data):
        self.data = new_data

    def recompute(self):
        self.hash = str(abs(hash(self.data)))
        return self.hash



#Node will have a left and right leaf
class Node():
    def __init__(self,left_node,right_node):
        self.hash = None
        self.left = left_node
        self.right = right_node

    def recompute(self):
        #Hash the left and right first, recursively
        #l = self.left.recompute()
        #Hash the left and right first, recursively
        #r = self.right.recompute()
        print(self.left)
        print(self.right)
        self.hash = str(abs(hash(self.left.recompute()+self.right.recompute())))
        return self.hash






#Add some data to one of the leaf node
l1 = Leaf("left")
l2 = Leaf("right")
print(l1)
print(l2)
#Generates the Hash 
#print(leaf.recompute())
node = Node(l1,l2)
print(node.recompute())

Выход:

mohit@mohit-LIFEBOOK-UH552:~/Documents/python/merkeltree$ python3 main.py 
<__main__.Leaf object at 0x7fe80bc21748>
<__main__.Leaf object at 0x7fe80bc21780>
<__main__.Leaf object at 0x7fe80bc21748>
<__main__.Leaf object at 0x7fe80bc21780>
7573330512381989326
mohit@mohit-LIFEBOOK-UH552:~/Documents/python/merkeltree$ python3 main.py 
<__main__.Leaf object at 0x7f11938bf780>
<__main__.Leaf object at 0x7f11938bf7b8>
<__main__.Leaf object at 0x7f11938bf780>
<__main__.Leaf object at 0x7f11938bf7b8>
6285654789845752725

Проблема, с которой я сталкиваюсь, заключается в создании хэша для узла, который меняется каждый раз, когда я выполняю код. Теоретически, если мой ввод статический, вывод должен быть таким же хешем.

0 ответов

Другие вопросы по тегам