我想为几乎每个对象生成类似哈希的东西。它目前实现为:
hashlib.sha256(pickle.dumps(something))
但是,它会为something = {"a": 1, "b": 2}
和something={"b":2, "a":1}
生成不同的哈希值。我真的希望生成的哈希对他们来说是相同的。因此,我想要一个对通用对象进行排序的函数(可能包含字典作为属性),并确保{"a": 1, "b": 2}
和something={"b":2, "a":1}
pickle为相同的字节。
这可能吗?
或者有更好的方法来生成这样的哈希吗?
编辑:
我不在乎数据类型是否被改变。例如,sorted(something.items())
可以完成字典的工作。但我想要一种更通用的方法。