2016-08-27 1 views
-1

Première utilisation de sha256.sha256 résultat ne pas changer

Avec ce code, le résultat est toujours égal à 4aa6892909e369933b9f1babc10519121e2dfd1042551f6b9bdd4eae51f1f0c2

ce qui est faux?

def signning(self,D_path): 
    BUF_SIZE = 65536 
    hashed = hashlib.sha256() 

    with open(D_path, 'rb') as f: 
     while True: 
      data = f.read(BUF_SIZE) 
      if not data: 
       break 
      hashed.update(data) 

    hashed_D = hashed.hexdigest() 
    print hashed_D 
+0

Pourquoi cela devrait-il changer? Même entrée = même sortie, sinon votre fonction de hachage serait brisée. – tkausl

+0

Qu'espériez-vous plutôt faire? Est-ce avec des fichiers * différents * ou le même fichier à chaque fois? –

+0

Fichier différent avec résultat différent @ Martijn Pieters – Rex

Répondre

0

Oui, il n'y a rien de mal avec votre code, voici un petit exemple montrant que hashlib.sha256 est déterministe:

import random 
import string 
import hashlib 

random.seed(1) 

for i in range(5): 
    data = ''.join(random.choice(string.ascii_uppercase + string.digits) 
        for _ in range(10)) 

    hashed = hashlib.sha256() 
    hashed.update(data) 
    print data, "->", hashed.hexdigest() 

Exécuter ce script à plusieurs reprises et vous allez recevoir le même sortie cos l'entrée est toujours la même;)

+0

Thx pour une réponse, semble que c'est une question factice: D – Rex