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