可能重复:
How do I create a HashCode in .net (c#) for a string that is safe to store in a database?
我使用C# 4.0,通过调用以下命令来获取字符串散列:
"my string".GetHashCode()
此调用生成的代码将存储到数据库中,以备将来使用。此哈希码用于查找字符串的某个子集,然后进行相等比较。
问题包括:
发布于 2011-11-07 03:01:44
来自MSDN:
GetHashCode方法的默认实现不保证不同对象的返回值是唯一的。此外,.NET框架不保证GetHashCode方法的默认实现,并且它返回的值在不同版本的.NET框架之间是相同的。因此,此方法的默认实现不能用作唯一的对象标识符进行哈希处理。
因此,您不能假设GetHashCode
产生的值是稳定的。这也不仅仅是理论上的-- we've seen the value change in the past。
如果你想要一个稳定的散列,你必须自己生成它。
发布于 2011-11-07 03:02:12
发布于 2011-11-07 03:02:34
http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx
.NET框架不保证GetHashCode方法的默认实现,并且它返回的值在不同版本的.NET框架之间是相同的。因此,此方法的默认实现不能用作散列目的的唯一对象标识符。
https://stackoverflow.com/questions/8029529
复制相似问题