2017-02-03 2 views
1

Я использовал библиотеку Apache для хэш-пароля для двух приложений в Linux. Один из них - Pure-Ftp, а другой - мое приложение. Я вручную сохраняю хэшированный пароль в файле Pure-Ftp passwd, он отлично работает, и пользователь может использовать Ftp с данным пользователем/паролем.
В моем приложении я хочу аутентифицировать пользователя, но нет функции checkPassword (clearTextPassword, hashedPassword).Как аутентифицировать пользователя с SHA1 в Java

import org.apache.commons.codec.digest.Crypt; 
... 
... 
... 
String hashedValue = Crypt.crypt(clearTextPassword); 
.. 
+0

Ну нет, вам нужно * написать * этот код. Где вы храните хешированные пароли? Это действительно непонятно, что вы просите здесь. (Неясно, какие отношения между вашим паролем и FTP ...) Также я бы лично избегал использования SHA-1 в качестве хэша паролей для любой серьезной работы. –

+0

Просто использовать хеш-функцию недостаточно, и просто добавление соли мало помогает улучшить безопасность. Вместо этого перебирайте HMAC со случайной солью в течение приблизительно 100 мс и сохраняйте соль с хешем. Используйте такие функции, как 'PBKDF2' (aka' Rfc2898DeriveBytes'), 'password_hash' /' password_verify', 'Bcrypt' и аналогичные функции. Дело в том, чтобы заставить злоумышленника потратить много времени на поиск паролей грубой силой. Защита ваших пользователей важна, используйте безопасные пароли. – zaph

+0

Я думал, что SHA1 512 безопасен, не так ли? Я не хочу использовать функцию bash. Я хочу создать хешированный пароль один раз в Java, а затем сохранить его в базе данных и в файле passwd Pure-Ftp. – Razavi

ответ

0

Для проверки пароля, Вы можете хэш-дается простой пароль с savedHashedPassword как соль:

private static boolean checkPassword(String password, String hashedPassword) { 
     String tmpHashedPassword = Crypt.crypt(password, hashedPassword); 
     return hashedPassword.equalsIgnoreCase(tmpHashedPassword); 

}

Crypt.crypt (пароль) Вычисляет дайджеста, используя самую сильную крипту (3) алгоритм. Используется случайная соль и алгоритм по умолчанию (в настоящее время SHA-512).

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