.Net 2.0 代码中是否实现了 .Net 1.1 兼容的 String.GetHashCode ?

发布于 2024-08-15 21:11:00 字数 484 浏览 2 评论 0原文

我有一个现有的应用程序,其中我错误地使用了 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 的合同不要求它兼容。

有什么想法吗?

I have an existing app in which I made the mistake of using String.GetHashCode and persisting it to disk. Now that I'm upgrading the app to .Net 2.0 I find that that decision has come back to bite me in the butt.

I'm interested to know if anyone knows about a .Net 2.0 implementation of a .Net 1.1 compatible string hashing algorithm.

Obviously the best solution would be to buy myself a time machine and go back to 2002 and kick myself in the shin for even considering using the hashcode this way. Since that doesn't appear likely I'm looking for a workaround. I have existing users with this data on their systems so it's not possible for me to make one big conversion of the hashes or anything like that.

With the change to 2.0 I will update the code so it uses MD5 or SHA of course.

I considered extracting the String.GetHashCode source from Mono but since Mono is GPL and my app is commercial that really isn't an option. I don't even know if the Mono implementation is compatible with the MS .Net implementation since the contract for GetHashCode wouldn't require it to be compatible.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满身野味 2024-08-22 21:11:00

看来你不是唯一的一个: 在 .NET 2.0 CLR 中获取 .NET 1.1 CLR 字符串哈希代码

链接到 BackCompatibleStringComparer,(据称,我可以't verify)显示了旧 GetHashCode() 的实现。

You're not the only one, it seems: Getting .NET 1.1 CLR String Hash Codes In The .NET 2.0 CLR

That links to BackCompatibleStringComparer, which (allegedly, I can't verify) shows the implementation of the old GetHashCode().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文