Python 256bit Hash函数,带数字输出

Ste*_*fen 13 python hash long-integer

我需要一个256位输出的Hash函数(如长整数).

首先我认为我可以使用hashlib中的SHA256,但它有一个字符串输出,我需要一个数字来计算.

将32字节字符串转换为long也可以,但我没有找到任何东西.在struct中有一个unpack函数,但这只适用于8字节长的类型而不适用于更长的long.

DSM*_*DSM 21

怎么样:

>>> import hashlib
>>> h = hashlib.sha256('something to hash')
>>> h.hexdigest()
'a3899c4070fc75880fa445b6dfa44207cbaf924a450ce7175cd8500e597d3ec1'
>>> n = int(h.hexdigest(),base=16)
>>> print n
73970130776712578303406724846815845410916448611708558169000368019946742824641
Run Code Online (Sandbox Code Playgroud)


kin*_*ket 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)
Run Code Online (Sandbox Code Playgroud)