2

问题:

从一组不同数据类型的值(在 Python 中)中获取散列的好方法是什么?

这些值需要以一致的顺序进行散列。需要散列的值是字符串和整数。

例子:

value1 = 'coconut'
value2 = 1.23

hash = Sha1Hash(value1, value2)

总是可以连接成一个字符串,但感觉这不太理想:

hash = Sha1Hash( '%s%s' % (value1, value2))
4

2 回答 2

2

只需制作一个值的元组,然后散列:

>>> Sha1Hash((value1, value2))

或使用标准哈希函数:

>>> hash((value1, value2))
于 2013-05-10T16:48:45.060 回答
1

看起来你想要一个 sha1 哈希值。Python 带有一个 sha1 哈希函数,但它需要一个字符串作为输入。因此,您的数据(value1, value2)需要序列化。

由于您的数据仅包含字符串、整数和浮点数,因此您可以对其进行序列化并保留值的顺序

str([value1, value2])

import hashlib

value1 = 'coconut'
value2 = 1.23

m = hashlib.sha1()
m.update(str([value1, value2]))
print(m.hexdigest())            
# 1381ae81c8a5b660cca5b8d4607aa378320e25e8
于 2013-05-10T16:42:23.953 回答