crypt (3) $6$ алгоритм хэша пароля (основанный на SHA-512) в Java?

Я ищу функцию Java для генерации / проверки хэшей паролей, которые были закодированы в пути crypt(3) делает при хранении их в файле Linux "/ etc / shadow", если sha512 активируется в " / etc / pam.d / common-пароль".

строка открытого текста "geheim" будет переведена на:

"$WoC532HB$LagBJ00vAGNGu8p9oeYDOSNZo9vTNTzOgPA.K0bJoiXfbcpj3jBuTkNwdzCrSNadRi8LanH1tH6tGGPPp/Lp3."

от http://www.akkadia.org/drepper/SHA-crypt.txt я понимаю, что, как и с MD5, это не просто хэш SHA, как DigestUtils или Java MessageDigest классы создайте алгоритм, который делает немного больше магии.

3 ответов


Я нашел реализации Java для всех новых алгоритмов crypt () здесь:ftp://ftp.arlut.utexas.edu/java_hashes/


взгляните на Apache Commons Codec Digest

и jBCrypt вы можете найти полезную.

в этой статье модульный формат крипты или, примечание о стандарте, который не является много деталей формата Crypt3.


другой вопрос, на который вы ссылаетесь, содержит только ссылки на традиционный метод crypt(3) на основе DES и метод "$1$" на основе MD5. Мне нужно проверить пароли, которые используют метод " $5$", основанный на SHA-1 или даже метод" $6$", основанный на SHA-512.

на основе здесь означает, что crypt (3) использует, например, SHA-512, но добавляет значение соли и выполняет несколько итераций, как описано в http://www.akkadia.org/drepper/SHA-crypt.txt