为了识别数据库中的对象并使查找更容易,我决定散列标识对象的值并将它们存储在我们的数据库中。
这些值可以是字符串,guids,小数,布尔值或日期时间。例如,我们可以
object 1: "test 1", 1, Guid.NewGuid() -> combined hash of these values = 1
object 2: "test 2", 2, DateTime.Now -> combined hash of these values = 2
在这种情况下,object 1
和object 2
不同,因为它们的哈希值不同。
在我的第一次尝试中,我使用值的HashCode并以与顺序无关的方式组合它们(请参阅here)。但是我很快就遇到了很多问题:
我在考虑使用SHA256
来生成哈希码,但是如何以与顺序无关的方式将它们组合在一起呢?
基本上我对散列函数H
的要求是
H(1, "test") = H("test", 1)
我可以用它做什么?