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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут