1

サーバーとクライアントの両方の非対称キーを作成してから、それらをエクスポートして交換を試みることができます。私の問題は、これに対する解決策を見つけることができませんでしたが、サーバーの公開鍵をクライアントプログラムにインポートしたいということです。これはbyte[]として送信されますが、サーバーに送信するデータを暗号化できるようにするには、RSAParametersとして使用できる必要があります。byte []をRSAParametersタイプに変換するにはどうすればよいですか?

private void secureButton_Click(object sender, EventArgs e)
        {
            clientRSA = new RSACryptoServiceProvider();
            byte[] clientPublicKey = clientRSA.ExportCspBlob(false);

            stm.Write(clientPublicKey, 0, clientPublicKey.Length);
            stm.Read(serverPublicKey, 0, serverPublicKey.Length);
        }

MITMに対して脆弱であるため、これは「安全な」方法ではないことを私は知っていますが、私は厳しい学校の締め切りに直面しており、これは私が先に進む前に通り抜ける必要があるレンガの壁です。

どんな助けでもいただければ幸いです。前もって感謝します。

4

2 に答える 2

5

私は先に進んでこれを答えにします、そして:

私はblobを実行したことはありませんが、通常はRSACryptoServiceProvider.ToXMLString()XMLにエクスポートするために使用します。次に、そのXMLをアプリのリソースに配置し、将来的RSACryptoServiceProvider.FromXMLString()にはキーパラメーターをロードするために使用します。

公開鍵を保護する必要はありません。公開です

于 2013-03-28T12:51:14.310 に答える
3

byte []公開鍵をRSAParametersに変換するには、同じクラスRSACryptoServiceProviderを使用できます。

byte[] clientPublicKey = ...
var provider = new RSACryptoServiceProvider();
provider.ImportCspBlob(clientPublicKey);
var parameters = provider.ExportParameters(false);
于 2013-03-26T21:11:30.913 に答える