2012-01-30 3 views
6

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

Открытый текст строка «Geheim» будет переводить:

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

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

+0

Вы проверили это: http://stackoverflow.com/questions/3174943/java-implementation-of-crypt3 – home

ответ

5

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

+0

Между тем проект Apache Commons Codec имеет полную поддержку всех алгоритмов Linux crypt()! – lathspell42

+0

Буду признателен за небольшую информацию о том, откуда эта ссылка. Загрузка случайных банок может быть плохой идеей. – DonyorM

+0

FYI ссылка мертва, и нет версии 'archive.org'. У вас есть другой источник? – Luc

0

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

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

+0

После некоторого поиска я нашел хотя бы одну реализацию механизма $ 6 $ на основе SHA-512: http : //tools.arlut.utexas.edu/gash2/doc/javadoc/arlut/csd/crypto/Sha512Crypt.html – lathspell42