Python 256位哈希函数,输出数字

15

我需要一个256位输出(作为长整型)的哈希函数。

起初,我认为可以使用哈希库中的SHA256函数,但它只有一个字符串输出,我需要一个数字来进行计算。

将32字节的字符串转换为长整型也可以实现,但我没有找到对应的方法。虽然在struct模块中有一个解包(unpack)函数,但它仅适用于8个字节长的数据类型,无法处理更长的长整型。

2个回答

27

可以这样尝试:

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

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接