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

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

Текстовая строка "geheim" будет переводиться на:

"$6$WoC532HB$LagBJ00vAGNGu8p9oeYDOSNZo9vTNTzOgPA.K0bJoiXfbcpj3jBuTkNwdzCrSNadRi8LanH1tH6tGGPPp/Lp3."

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

Ответы [ 3 ]

5 голосов
/ 08 февраля 2012

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

1 голос
/ 07 марта 2016

Посмотрите на Дайджест кодов Apache Commons

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

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

0 голосов
/ 03 февраля 2012

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

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

...