問題タブ [cryptographicexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - CryptographicException を回避するには?
キーが間違っているために復号化が失敗すると、System.Security.Cryptography.CryptographicException を受け取ります。
どうすればそれを回避できますか?できればこのように見える組み込みのソリューションはありますか?
windows - 同じマシンに異なる OS がインストールされていると、ProtectedData.Unprotect メソッドが CryptographicException をスローする
私たちのアプリケーションは、クライアントの場所にインストールされています。アプリケーションは、ProtectedData.Protect メソッドを使用してクライアント マシン上のキーを保護し、出力をファイルに保存します。以下はコードです:
ProtectedData.Protect(sampleHashKey, entropy, DataProtectionScope.LocalMachine);
Entropy
はバイト配列です。
クライアントは、そのマシンのオペレーティング システムを Windows 2016 Server に更新し、その前にハッシュ キー ファイルをバックアップし、新しいハッシュ キー ファイルを作成したソフトウェアを再インストールしました。クライアントは、新しいハッシュ キー ファイルをバックアップ ファイルに置き換えました。ソフトウェアが次のコードで保護解除メカニズムを使用してファイルを読み取ろうとしたときに
ProtectedData.Unprotect(sampleHashKey, entropy, DataProtectionScope.LocalMachine);
、CryptographicException がエラーでスローされました: Key not valid for use in specified state.
ファイルがDataProtectionScope.Localmachineと同じマシンで作成されたにもかかわらず、このエラーが発生したのはなぜですか? 同じマシン上で OS をまたいで動作しませんか? 誰かが私に問題を説明してもらえますか?