私のサーバーは RSACryptoServiceProvider を作成し、そのパラメーターを変数 (RSAKeyInfo) にエクスポートします。
次に、公開鍵がクライアントに送信され、クライアントはその公開鍵で何かを暗号化します。
ここで、サーバーに送り返すときに、まさにこのデータを復号化できる必要があります。そのため、RSA が私の場合に役立つのです。
ただし、以前に作成された最初の RSACryptoServiceProvider からインポートされたパラメーターを使用して RSACryptoServiceProvider を再作成しようとすると、「Bad Data」例外が発生します。
...コードはより明確になる可能性があります。
暗号の作成:
class Cryptograph
{
public Cryptograph()
{
this.RSAKeyInfo = new RSACryptoServiceProvider(2048, new CspParameters(1)).ExportParameters(true);
}
}
復号化のために後でアクセスする:
byte[] encrypted = ...;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(this.Cryptograph.RSAKeyInfo);
byte[] decrypted = rsa.Decrypt(encrypted, false);
Console.WriteLine(Utilities.ByteArrayToHexString(decrypted));
次の行で「Bad Data」例外が発生します。
byte[] decrypted = rsa.Decrypt(encrypted, false);
私は何を間違っていますか?どうすれば適切に行うことができますか?ありがとうございました :)
PS: MSDN や明らかな Google 検索結果のリンクを送らないでください。これらのページをすべて読みましたが、まだ機能しません。