2011-01-06 10 views
10

Ho bisogno di una funzione hash con un'uscita a 256 bit (a partire da int).Funzione Hash 256 bit Python con uscita numero

Per prima cosa ho pensato che potevo usare SHA256 dall'hashb ma che ha un'uscita di tipo String e ho bisogno di un numero con cui calcolare.

La conversione della stringa da 32 byte su una lunga funzionerebbe anche ma non ho trovato nulla. In struct c'è una funzione di disimballaggio, ma funziona solo per i tipi lunghi 8 byte e non per quelli più lunghi.

risposta

17

ne dite:

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

aggiornamento python 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) 
Problemi correlati