我正在考虑创建一个dict的校验和,以知道它是否被修改过。
目前我有:
>>> import hashlib
>>> import pickle
>>> d = {'k': 'v', 'k2': 'v2'}
>>> z = pickle.dumps(d)
>>> hashlib.md5(z).hexdigest()
'8521955ed8c63c554744058c9888dc30'
也许存在更好的解决方案?
注意:我想创建一个dict的唯一ID来创建一个好的etag。
编辑:我可以在听写中有抽象数据。
最佳答案
像这样:
reduce(lambda x,y : x^y, [hash(item) for item in d.items()])
将dict中每个(key,value)元组的散列值与xor一起使用。
@凯特里·亚历克斯
如果dict包含不可显示的项,则可以执行此操作:
hash(str(d))
或者更好
hash(repr(d))
关于python - Python,dict的校验和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6923780/