2011-01-06 3 views
10

256 비트 출력 (long int)이있는 해시 함수가 필요합니다.파이썬 256 비트 해시 함수 (숫자 출력 포함)

처음에는 hashlib에서 SHA256을 사용할 수 있다고 생각했지만 String Output이 있고 계산할 숫자가 필요합니다.

32 바이트 문자열을 long으로 변환해도 작동하지만 아무 것도 찾지 못했습니다. 구조체에는 언팩 (unpack) 기능이 있지만 이것은 8 바이트의 긴 유형에서만 작동하며 긴 길이에서는 작동하지 않습니다.

답변

17

방법에 대해 :

>>> import hashlib 
>>> h = hashlib.sha256('something to hash') 
>>> h.hexdigest() 
'a3899c4070fc75880fa445b6dfa44207cbaf924a450ce7175cd8500e597d3ec1' 
>>> n = int(h.hexdigest(),base=16) 
>>> print n 
73970130776712578303406724846815845410916448611708558169000368019946742824641 
1

파이썬 3.x를 업데이트

import hashlib 
value = 'something to hash' 
t_value = value.encode('utf8') 
h = hashlib.sha256(t_value) 
h.hexdigest() 
n = int(h.hexdigest(),base=16) 
print(n)