我正在考虑创建一个字典的校验和来知道它是否被修改
目前我有:
>>> import hashlib
>>> import pickle
>>> d = {'k': 'v', 'k2': 'v2'}
>>> z = pickle.dumps(d)
>>> hashlib.md5(z).hexdigest()
'8521955ed8c63c554744058c9888dc30'
也许存在更好的解决方案?
注意:我想创建一个字典的唯一id来创建一个好的Etag。
EDIT:我可以在字典中包含抽象数据。
像这样的事情:
reduce(lambda x,y : x^y, [hash(item) for item in d.items()])
获取字典中每个(键,值)元组的哈希值并将它们全部异或。
@katrielalex
如果字典包含不可散列的项目,你可以这样做:
hash(str(d))
或者也许更好
hash(repr(d))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)