3

String.GetHashCodeを使用してディスクに永続化するのを間違えた既存のアプリがあります。アプリを.Net2.0にアップグレードしているので、その決定が戻ってきて、私を悩ませていることがわかりました。

.Net1.1互換の文字列ハッシュアルゴリズムの.Net2.0実装について誰かが知っているかどうか知りたいです。

明らかに最善の解決策は、自分でタイムマシンを購入し、2002年に戻って、このようにハッシュコードを使用することを検討することさえ考えて、すねに身を投じることです。それはありそうにないので、私は回避策を探しています。システムにこのデータを持っている既存のユーザーがいるので、ハッシュなどを1回大きく変換することはできません。

2.0への変更に伴い、コードを更新して、もちろんMD5またはSHAを使用するようにします。

私はMonoからString.GetHashCodeソースを抽出することを検討しましたが、MonoはGPLであり、私のアプリは商用であるため、実際にはオプションではありません。GetHashCodeの契約では互換性が要求されていないため、Mono実装がMS.Net実装と互換性があるかどうかさえわかりません。

何か案は?

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 に答える