2010-03-18 16 views
5

używam "szyfrowanie Siła MD5 hasło" w htpasswd aby wygenerować hash na przykład '123' i otrzymujemy:jak wygenerować hash jak htpasswd Apache przy użyciu języka Java

użycie htpasswd: 123 => $ apr1 $ kaTbKaLO $ ewJXRZAKpjaxK4thy2jOp/

użycie MD5: 123 => 202cb962ac59075b964b07152d234b70

proszę mi powiedzieć, w jaki sposób można wygenerować hash lubią htpasswd apache używając Java Dzięki.

Odpowiedz

6

Hasła w Apache .htpasswd pliki są kodowane za pomocą salt. Jeśli chcesz wygenerować te hasła przy użyciu Javy, musisz zrobić to samo. This site zawiera objaśnienie algorytmu salt/hashingu dla plików .htpasswd Apache; Szukam rzeczywistego algorytmu, którego mógłbyś użyć i zmieni moją odpowiedź po znalezieniu.

EDIT: Wygląda na to, że został poproszony wcześniej, tutaj na SO:

Programmaticly building htpasswd

Oto dokumentacja z Apache, wraz z ich kodem źródłowym:

http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

http://svn.apache.org/viewvc/apr/apr-util/branches/1.3.x/crypto/apr_md5.c?view=co

3

Zauważyłem, że ktoś rozwiązał to w java & wydał go z licencją na piwo. Lepiej późno niż nigdy nie prawda? To było tam prawdopodobnie od 2007 roku, więc byłbym zaskoczony, jeśli nie ostatecznie okazało się, że jakiś czas po zapytaniu w 2010.

„Java Port Przez: Jonathan Abbey, [email protected]

"MD5Crypt.java jest portem oryginalnego algorytmu mieszającego opartego na MD5 opartego na Freeoulu FreeBSD, z dodatkowymi metodami obsługi wariantu tego serwera Apache HTTPd o numerze ."

"Powstały ciąg będzie w postaci '$ apr1 $ <soli> $ < hashed bałagan >'"

ftp://ftp.arlut.utexas.edu/pub/java_hashes/

0

md5crypt jest to, czego szukasz. Implementuje Apache htpasswd algorithms

Apache'owi, przy użyciu algorytmu iteracyjnego (1000 razy) MD5 różnych kombinacji z 32-bitowych losowych soli i hasło.

import org.apache.commons.codec.digest.Md5Crypt; 
... 
String enPasswd = Md5Crypt.md5Crypt("your plain password".getBytes()); 
String htpasswdContent = "your username:" + enPasswd; 
Powiązane problemy