3

我有一个现有的应用程序,其中我犯了使用 String.GetHashCode 并将其保存到磁盘的错误。现在我正在将应用程序升级到 .Net 2.0,我发现这个决定又回来咬我的屁股了。

我很想知道是否有人知道.Net 1.1 兼容字符串散列算法的.Net 2.0 实现。

显然,最好的解决方案是给自己买一台时间机器,然后回到 2002 年,甚至考虑以这种方式使用哈希码。由于这似乎不太可能,我正在寻找一种解决方法。我的现有用户在他们的系统上拥有这些数据,所以我不可能对哈希值或类似的东西进行一次大的转换。

随着对 2.0 的更改,我将更新代码,因此它当然使用 MD5 或 SHA。

我考虑从 Mono 中提取 String.GetHashCode 源代码,但由于 Mono 是 GPL 并且我的应用程序是商业应用程序,这确实不是一个选择。我什至不知道 Mono 实现是否与 MS .Net 实现兼容,因为 GetHashCode 的合同不要求它兼容。

有任何想法吗?

4

1 回答 1

6

您似乎不是唯一一个:Getting .NET 1.1 CLR String Hash Codes In The .NET 2.0 CLR

链接到BackCompatibleStringComparer,(据称,我无法验证)显示旧的GetHashCode().

于 2009-12-29T22:51:35.703 回答