问题:
从一组不同数据类型的值(在 Python 中)中获取散列的好方法是什么?
这些值需要以一致的顺序进行散列。需要散列的值是字符串和整数。
例子:
value1 = 'coconut'
value2 = 1.23
hash = Sha1Hash(value1, value2)
总是可以连接成一个字符串,但感觉这不太理想:
hash = Sha1Hash( '%s%s' % (value1, value2))
看起来你想要一个 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