3

私はこのトピックについていくつか読んだことがありますが、私が見た答えにはまだ100%満足していません。

を使用して暗号化アルゴリズムを作成するRijndael.Create()と、タイプのオブジェクトが取得されます。これと呼び出し(またはVBの人々)RijndaelManagedの間に違いはないようです。:)new RijndaelManaged()New RijndaelManaged()

私が読んだところによると、Rijndael.Create()メソッドは存在するので、将来のバージョンで変更された場合に備えて、特定の実装について心配する必要はありません。しかし、私の質問は次のとおりです。それが発生し、.NET5.0が別の実装を返すと仮定します。RijndaelManagedを使用して暗号化されたアイテムが、を使用して問題なく復号化できるという保証はありSomeFutureRijndaelManagedますか?

互換性がないとは想像できませんが、確認したいだけです。

ありがとう

4

1 に答える 1

8

Rijndael.Create抽象化レイヤーと追加のリダイレクトを追加して、おそらくシステム固有のバージョンのアルゴリズムを提供できるようにします。RijndaelManaged実際には、それは非常に遅く、最終的にクラスに到達するためにOID文字列マッピングを解決するためにCryptoAPIを経由する必要があります。プラットフォーム間で安定性を提供する代わりに、Windows 2000 / XP / Vista/Windows全体で問題が発生することがわかりました。さらに、RijndaelManagedクラスを直接インスタンス化するよりも、Createメソッドを使用してオブジェクトのインスタンスを作成する方が数百倍遅くなります。これは、メモリ内のデータを暗号化/復号化する際の主要なボトルネックであることがわかりました。

「将来の校正」に関しては、セキュリティアルゴリズムにはそのようなものはありません。.NET5.0が出たとき。アルゴリズムを作成する方法に関係なく、変更に対応するために更新する必要があります。アプリケーションの.configファイルで使用<supportedRuntime />して.NETバージョンをロックインし、テストと更新が完了した後にのみアプリの切り替えを許可することができます。

于 2011-01-13T00:24:31.243 に答える