2010-11-25 3 views
1

Привет, Я отправляю сообщения через TCP и UDP от клиентов к серверу, а сервер написан на C++. Мне интересно, что было бы лучше, должен обеспечить способ отправки, например, если я хочу отправить данные для входа: адрес электронной почты, пароль и IP-адрес. Каким будет лучший способ отправить его в сообщении ang, прочитав данные на сервере, в то время как эти данные хранятся в char *.Лучший способ получить данные из текста (char *)

Спасибо.

ответ

0

В качестве другого плаката указано, не беспокойтесь о C++; используйте SSL или TLS. Это означает, что вам нужно будет получить сертификат для сервера, и это будет стоить вам от $ 50 до $ 1500 долларов, если вы получите коммерческий, или вы можете сделать свой собственный из центра сертификации интрасети, который вы установили сами.

Эта мера зашифрует сообщение и гарантирует, что ваш клиент фактически «разговаривает» с аутентичным сервером, а не самозванцем. Однако, если вам нужно, чтобы клиент также был аутентифицирован, вам понадобится второй сертификат (возможно, один на клиентскую машину, если быть точным). Если это слишком тяжело для ваших потребностей клиента, подумайте об использовании HMAC, чтобы помочь определить уполномоченного клиента от самозванца.

4

Это не имеет ничего общего с C++. Вы задаете общий вопрос об информационной безопасности. Вы хотите отправлять информацию через TCP или UDP, который включает конфиденциальную информацию (адрес электронной почты, пароль и IP-адрес). Для этого вам нужно использовать криптографию.

Криптография - сложная область, где вы не должны пытаться свернуть свои собственные протоколы, если вы не знаете много о том, что вы делаете. Вместо этого вам следует избегать UDP (потому что ОЧЕНЬ сложно делать криптограмму должным образом по UDP) и просто использовать SSL через TCP.

Для этого с C++ вы можете использовать библиотеку сокетов OpenSSL. И клиент, и сервер соединяются с библиотекой. Если вам нужна небольшая помощь, вы можете отлаживать с помощью утилиты sslwrap, командной строки, которая позволяет использовать сокеты открытого текста с вашего сервера &, но имеет незашифрованные данные, заключенные в SSL-соединение.

+0

Боюсь, что я не объяснил, что я прав ... Я за секьюритикой, у меня есть строка, хранящаяся на C++ на сервере, которая является C++-приложением, и эта строка должна содержать детали, скажем, в просто текст (это будет шифрование, допустим, это просто простой текст), я хочу, чтобы эта строка, содержащая электронную почту, пароль и IP, разделяла имя пользователя в одной строке, пароль в другой строке и IP в другой строке. Какой был бы лучший способ сделать это? Благодаря! – 2010-11-25 22:27:50

+0

Вы отлично объяснили. Невероятно, что вы используете сервер C++. Создайте протокол TCP (или используйте XMLRPC или REST) ​​и запустите его через SSL. – vy32 2010-11-26 02:51:56

Смежные вопросы