Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Шифрованная передача данных по сети


Автор: Johen 12.3.2005, 03:06
Ситуация такая:
Мне заказана прога, которая бы передавала файл по сети в зашифрованном режиме.
Требования к ней: консольная, клиент и сервер в одном флаконе, шифровка файла при передаче.

Я считаю сделать так:
Использовать сокеты. Криент и сервер реализовать через потоки. Для шифрования использовать метод с открытым ключем(сервер генерирует пару, клиенту отправляет открытый ключ, клиент с его помощью шифрует файл, отправляет серверу, а тот собственно расшифровывает приватным ключом), что-то на подобии RSA.

Есть две проблемы:
1. Как реализовать шифрование? Я не встречал в природе библиотеки, которые позволяют шифровать, например, методом RSA. smile
2. Какой протокол использовать при передаче файла? В смысле как вообще передавать файло через сокет? Какие вообще есть методы? smile

Посоветуйте че-нить... smile

Автор: Ni@m 12.3.2005, 12:02
а чем не подходит ssl?. насчет приложения - это http://www.pgpi.org/. он свободный, и довольно-таки надежный пакет.

Автор: Johen 13.3.2005, 02:44
Ты предлагаешь вообще отказаться от этой задачи? smile

Автор: Ni@m 14.3.2005, 16:59
Нет, я не это имел в виду. В смысле проги - либы для шифрования. Извини, если что smile

Автор: Johen 15.3.2005, 14:57
А... Извиняюсь... Спасибо за сцылочку... Заценю... smile

Автор: LuckLess 16.3.2005, 10:42
Цитата(Johen @ 12.3.2005, 03:06)
В смысле как вообще передавать файло через сокет? Какие вообще есть методы?

TransmitFile()

Автор: Ni@m 16.3.2005, 13:13
Цитата(LuckLess @ 16.3.2005, 10:42)
TransmitFile()

А в какой либе этот метод, если не секрет?

Автор: LuckLess 16.3.2005, 14:44
Ni@m
Header: Declared in Mswsock.h.
Library: Use Mswsock.lib.

Автор: Johen 18.3.2005, 15:25
LuckLess, Ni@m, спасибо!
Задание немного изменилось. Сервер - одна программа, клиент другая программа. Нужно реализовать шифрованное соединение между клиентом и сервером. Я так понял, для этого можно использовать openssl.

Насколько это трудно сделать? Где достать документацию по этому поводу и библиотеки? А может есть другой способ реализации шифрования? Ваши мнения...

Автор: Johen 18.3.2005, 20:55
Так. Стоп.

Предыдущее сообщение можно не читать... smile

Кто может представить пример использования библиотеки pgp?

Автор: Ni@m 19.3.2005, 13:23
попробуй счастья http://www.sources.ru/cpp/cpp_pgp_crypt.shtml и http://www.koders.com/c/fidF71B0EA8154BA0C091B40B0BDA603B4451133352.aspx

Автор: Johen 19.3.2005, 16:02
Цитата(Ni @ 19.3.2005, 13:23)
попробуй счастья http://www.sources.ru/cpp/cpp_pgp_crypt.shtml и http://www.koders.com/c/fidF71B0EA8154BA0C091B40B0BDA603B4451133352.aspx

Не... Не пойдет... smile

Мне надо PGP SDK... а именно: пример генерации новой пары ключей и пример использования PGPSockets с сессией TLS.

Автор: Ni@m 21.3.2005, 11:52
А ты вообще смотрел вторую ссылку?! там исходник почтовой программы, что умеет работать с ssl!

Автор: Johen 22.3.2005, 16:18
Вообще-то смотрел...

Пока я разберусь во всем коде, век пройдет... Еще и комментариями не пахнет. Плюс не для Винды.... smile

Автор: Goganchic 25.1.2007, 11:42
Ну так вот, если не для винды, то пользуй OpenSSL, там все достаточно тривиально, можешь использовать что-то на подобии https соединения, только если последний использует протокол http, то ты можешь передавать те данные, которые тебе надо. Документацию можешь найти на их официальном сайте.

Автор: jonie 28.1.2007, 02:56
сффлки могут быть полезны  http://e-jonie.narod.ru/links/crypt.xml

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)