Передача публичного RSA ключа - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Недавно начал изучение криптографических возможностей языка c#. Для тренировки решил написать сервер и клиент: клиент отправляет на сервер публичный rsa-ключ, и сервер им шифрует что-либо и возвращает данные клиенту. Так вот вопрос: как передать этот ключ через сокеты? Вот код генерации ключей на стороне клиента:
  public byte[] GenerateRsaKey()
        {
            var rsa = new RSACryptoServiceProvider(2048);
            var PrivateKey = rsa.ExportCspBlob(true);
            var PublicKey = rsa.ExportCspBlob(false);
 
            privateKey = PrivateKey;
            publicKey = PublicKey;
 
            return publicKey;
        }
Этот метод должен отправлять ключ:
public void Send(byte[] data){
   Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
   //
   // Манипуляции с ключом
   //
serverSocket.Send(data);
 RecvFromServer();
}

Решение задачи: «Передача публичного RSA ключа»

textual
Листинг программы
string s = Encoding.UTF8.GetString(tmpClient.buffer);
if(s.Contains("rsaKey:"))
{
* * byte[] key = Convert.FromBase64String(s.Substring("rsaKey:".Length));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5