2013-06-24 4 views
-1

Я только начинающий разработчик и делаю это больше, чтобы практиковать свои навыки.Безопасно передавать и хранить пароли

Я разрабатываю клиентское серверное приложение, в котором сервер будет размещать игру, и клиенты будут входить в систему, используя имя пользователя и пароль. Во-первых: Как только пользователь вводит свой идентификатор и пароль, каким будет самый простой способ безопасного его отправки клиенту? Должен ли я исправить свой собственный метод шифрования или есть предопределенные протоколы, к которым можно легко получить доступ, используя встроенные библиотеки java? Я слышал о TLS и SSL, но не знаю, как их использовать.

Во-вторых, для обеспечения безопасности я, конечно же, не хочу, чтобы пароли, хранящиеся на сервере, сохранялись как обычный текст. Вместо этого было бы здорово, если бы вместо сохранения пароля сохранялся хэш-дайджест пароля. В текстовом файле для удобства сравнения. Есть ли простой способ создания хеш-дайджест?

Большое спасибо за любую помощь

+0

использование Весна безопасности. –

ответ

1

Шифрование: Если вы собираетесь использовать протокол HTTP для связи, вы должны использовать HTTP через SSL. Он обеспечивает шифрование/дешифрование данных, передаваемых между клиентом и сервером. Это также поможет вам избежать таких атак, как фальсификация, подслушивание, человек-в-середине
атака.

Если у вас есть собственный протокол для связи, вы всегда можете использовать существующие алгоритмы
как RSA для генерации пары ключей. Когда пользователь входит в систему, пусть приложение зашифровывает пароль с общедоступной частью ключа Сервера, а сервер расшифровывает его с помощью собственного секретного ключа.

Хеширование: Для хеширования вы можете использовать SHA-2. (MD5 и SHA-1 также могут быть использованы, но SHA-2 более безопасен.) Вы можете сохранить хэш пароля в базе данных и сопоставить его с тем, когда пользователь регистрируется.