Передача публичного 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));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д