2012-02-16 3 views
2

Я пишу это настольное приложение Java (без подключения к Интернету), для которого требуется несколько отдельных учетных записей, мне нужно сохранить информацию для входа в файл, к которому можно получить доступ, чтобы проверить пароли.Хранение паролей в зашифрованном файле

Я понятия не имею, как это должно быть сделано, как вы можете прочитать зашифрованный файл, не видя чужие пароли?

+0

[Что вы пробовали до сих пор?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried) –

+1

введите свой логин и пароль в некоторой строке, после этого пароля магазина хэш-код строки в вашем файле. – alnasfire

ответ

-1

Обычный и безопасный способ действовать следующим образом:

  • Храните «имя пользователя» в ясный, и пароль, как SHA-1 дайджеста (или аналогичный).
  • Когда пользователь входит в систему, затем переваривает пароль с помощью алгоритма SHA-1 и сравнивает результат с тем, который у вас был в файле. Если строки SHA-1 совпадают, пароль был верным.

Это гарантирует, что кто-то, у кого есть доступ к файлу, не будет знать пароль (поскольку MD5 не может быть реверсивным) и не сможет войти в приложение.

+0

Я бы предложил более надежную функцию, чем MD5 для обеспечения безопасности –

+0

Какой? MD5 не обратимо, и для повышения надежности вы можете переваривать несколько раз (умножая необходимое время, чтобы взломать его). – edutesoy

+0

Пожалуйста, не предлагайте MD5 - считается [«криптографически сломанным»] (http://www.kb.cert.org/vuls/id/836068). Используйте, по крайней мере, SHA-1. – Marcelo

0

Наиболее распространенным решением является не шифрование файла, а сохраненные пароли. Вы можете использовать алгоритм одностороннего шифрования (который упрощает шифрование, трудно расшифровывать, гарантирует уникальность зашифрованного пароля, поэтому два разных пароля не приведут к одной и той же зашифрованной строке). Когда пользователь снова вводит свой пароль, вы шифруете ее представление и сравниваете зашифрованный пароль с тем, который хранится в вашем файле.

2

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

При сохранении пароля вам необходимо создать случайную соль. Затем вы объединяете его с паролем и перевариваете его. Затем вы сохраняете имя пользователя, переваренный пароль и соль.

Если вы хотите проверить пароль, вы соедините пароль, который пользователь написал с солью, сохраненной для этого пользователя, перескажите его и сравните с сохраненным переваренным паролем.

Будьте осторожны с алгоритмом дайджеста, который вы будете использовать. SHA-XX неплох, он включен в java по умолчанию.

+0

Для автономного приложения, где должна храниться соль? – user1183661

+0

@ user1183661 Вы можете сохранить его в том же месте, что и пароль. Соль не секрет, нет проблем, если она не зашифрована. – Pablo

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