Bonjour
Voila mon problème, j'ai une classe représentant un objet de type hash qui contient les méthodes md5, sha1...sha512.
Ces méthodes créent des objets de type thread_algo (thread_md5, thread_sha1...) qui lorsqu'ils sont appelés calculent le hash d'une chaine passée en paramètre avant d'en retourner la valeur dans une variable récupérée ensuite par la méthode de l'objet hash qui la retourne.
Ma question est la suivante :
Dans mon programme principal, puis-je créer un objet hash et en appeler successivement les méthodes de calcul sans problème ? ou cela va-t-il poser problème (execution non simultanée ou des trucs du genre).
Ca donnerai quelque chose du genre :
Avec l'objet hash (incomplet) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 a = hash(string_to_hash) a.md5() a.sha1() a.sha224() ....
Et l'objet thread_md5 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class hash(): def md5(self): threadmd5 = thread_md5(self.target) # en admetant que self.target soit déclarer dans la fonction __init__ return threadmd5.result()
Autre question : Ne vais-je pas utiliser beaucoup trop de mémoire en transmettant la chaine target d'objet en objet en en créant une copie propre à chaque thread etc... ? Comme ca doit pouvoir être rapide sur de gros fichiers ca me préoccupe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class thread_md5(threading.Thread): def __init__(self, target): threading.Thread.__init__(self) self.target = target def run(self): self.result = hashlib.md5(self.target).hexdigest() def result(self): return self.result
Merci de votre aide.
Au revoir
Partager