Шифрование пароля - PullRequest
       1

Шифрование пароля

1 голос
/ 12 октября 2009

Я хочу зашифровать пароль в JQuery и расшифровать его в сервлетах. Скажите, пожалуйста, какой алгоритм мне использовать и как реализовать эту вещь.

Ответы [ 4 ]

4 голосов
/ 12 октября 2009

Вы хотите использовать HMAC.

Как правило, вы отправляете 2 соли клиенту. Вы храните в своей базе данных

md5(salt + pwd)

вы отправляете уникальную salt2 и db salt конечному пользователю, который возвращает

md5(salt2 + md5(salt + pwd))

и затем вы сравниваете с той же операцией на стороне сервера.

Пока вы меняете отправленную соль и не принимаете старую, она примерно так же безопасна, как и без SSL. Вы определенно не хотите пытаться использовать AES или RSA что-нибудь подобное.

Если вам не нравится md5, используйте любой другой алгоритм хеширования по вашему выбору.

1 голос
/ 25 августа 2012

С точки зрения того, как это реализовать, все пошло дальше, так как вопрос возник, и похоже, что CryptoJS должен облегчить это:

http://code.google.com/p/crypto-js/

ПРИМЕЧАНИЕ. - Я еще не использовал его!

0 голосов
/ 12 октября 2009

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

Единственный способ сделать это правильно - использовать несимметричный шифр с открытым ключом, такой как RSA. Я видел реализацию Javascript здесь . Я бы сказал, что это сложнее, чем необходимо, и что простой вход в систему через SSL, скорее всего, самый безопасный и простой способ в долгосрочной перспективе.

0 голосов
/ 12 октября 2009

Простое пятно Гуглинга дало бы вам ответ . Доступными алгоритмами являются Blowfish, SHA и Rc4. Если вы хотите расшифровывать, вам подойдет минет. Для небольших наборов данных вы можете использовать rc4.

Для практического примера посмотрите, как Yahoo делает свои логины . Форма входа имеет скрытое поле, которое действует как соль, называемое ".challenge", это встроено в хеш следующим образом: fullhash=MD5(MD5(passwd)+challenge)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...