.net - 如何强制 .net String GetHashCode() 的 32 位

标签 .net string hash

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/

相关文章:

sql - 将一个 SQL 字符串拆分为多个字符串

python - 从头开始将字符串转换为大写

c# - 如何在 C# 中将 FSharpList 转换回 List?

用于修改和检索 SQL Azure 数据的 C# .Net 桌面应用程序?

c# - 为什么我的应用程序随着时间的推移变得响应速度变慢?

Java问题: creating a string from a sequence of bytes

node.js - Node JS 使用加密计算 MD5 哈希值的不同结果

json - 在 redis 中存储用户配置文件的更好数据结构是什么?

arrays - Ruby 将数组映射到哈希

c# - 从 WPF 引用 .NET Core 1.0 库