Possible Duplicate:
GetHashCode() gives different results on different servers?
我在 .net 4.0 程序中使用了 string GetHashCode() 并将该值存储在数据库中。问题是,当我在不同的设置(64 与 32)上运行程序时,.net 使用不同的哈希算法进行字符串哈希。所以我不会一直得到比赛。那么有人知道如何在 64 位版本上计算 32 位字符串哈希吗?
最佳答案
简单的答案是不要这样做。这些值被指定为平台相关的,并且除了满足 GetHashCode 的约定之外,没有定义确切的行为。不保证它在 .NET 新版本、新架构甚至补丁中保持不变。使用行为已定义的实际哈希算法,例如 SHA-1、CRC 或其他算法(取决于实际需求)。
关于.net - 如何强制 .net String GetHashCode() 的 32 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6208662/