Python 256位哈希函数输出数字
我需要一个输出为256位的哈希函数(也就是长整型)。
一开始我想用hashlib里的SHA256,因为它可以生成哈希值,但它的输出是字符串,而我需要的是数字来进行计算。
把32字节的字符串转换成长整型也是可以的,但我没找到合适的方法。在结构体中有一个解包函数,但这个函数只适用于8字节的长整型,不适用于更长的类型。
2 个回答
6
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)
28
这样怎么样:
>>> import hashlib
>>> h = hashlib.sha256('something to hash')
>>> h.hexdigest()
'a3899c4070fc75880fa445b6dfa44207cbaf924a450ce7175cd8500e597d3ec1'
>>> n = int(h.hexdigest(),base=16)
>>> print n
73970130776712578303406724846815845410916448611708558169000368019946742824641