【问题标题】:How to enforce 32bit of .net String GetHashCode() [duplicate]如何强制执行 32 位的 .net String GetHashCode() [重复]
【发布时间】:2011-09-06 17:03:04
【问题描述】:

可能重复:
GetHashCode() gives different results on different servers?

我在 .net 4.0 程序中使用字符串 GetHashCode() 并将值存储在数据库中。问题是当我在不同的设置上运行程序时,64 vs 32,.net 使用不同的散列算法进行字符串散列。所以我不会一直得到比赛。那么有谁知道即使在 64 位构建上我也可以只计算 32 位的字符串散列。

【问题讨论】:

    标签: .net string hash


    【解决方案1】:

    简单的答案是不要那样做。这些值被指定为与平台相关的,并且在满足 GetHashCode 的合同之外没有定义确切的行为。不能保证在 .NET 的新版本、新架构甚至补丁中保持不变。使用行为已定义的实际哈希算法,例如 SHA-1、CRC 或其他(取决于实际要求)。

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 1970-01-01
      • 2011-09-25
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      相关资源
      最近更新 更多