2016-08-27 3 views
-1

처음으로 sha256을 사용합니다. 이 코드sha256 결과가 변경되지 않았습니다.

는, 결과는 항상 4aa6892909e369933b9f1babc10519121e2dfd1042551f6b9bdd4eae51f1f0c2

잘못된 것입니다 같음?

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

왜 변경해야합니까? 동일한 입력 = 같은 출력, 그렇지 않으면 해시 함수가 고장납니다. – tkausl

+0

그 대신에 무엇을 기대 했습니까? * 다른 * 파일 또는 매번 같은 파일이 있습니까? –

+0

다른 결과가있는 다른 파일 @ Martijn Pieters – Rex

답변

0

그래, 코드 아무 문제가, 여기에 hashlib.sha256을 보여주는 작은 예 결정적 것입니다 : 반복

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() 

실행이 스크립트와 같은 점점됩니다 출력은 항상 동일합니다.)

+0

anwsering을위한 Thx는 가짜 질문 인 것 같습니다. D – Rex

관련 문제