Domanda

io uso "crittografia Forza MD5 della password" in htpasswd per generare un hash per esempio '123' ottengo:

uso htpasswd: 123 => $ apr1 $ kaTbKaLO $ ewJXRZAKpjaxK4thy2jOp /

utilizzare MD5: 123 => 202cb962ac59075b964b07152d234b70

prego di dirmi come posso generare un hash come l'Apache htpasswd utilizzando Java Grazie.

È stato utile?

Soluzione

Le password in Apache .htpasswd file vengono codificati utilizzando un sale . Se si desidera generare le password che utilizzano Java è necessario fare lo stesso. Questo sito ha una spiegazione del sale / algoritmo di hash utilizzato per Apache. file htpasswd; Sto cercando un algoritmo vero e proprio si potrebbe usare e sarà modificare la mia risposta dopo aver trovato uno.

Modifica : Sembra come se fosse stato chiesto prima, proprio qui su SO:

programmaticly costruzione htpasswd

Ecco la documentazione da Apache, insieme al loro codice sorgente:

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

Altri suggerimenti

Ho trovato in cui qualcuno è affrontato questo in Java e rilasciato con una licenza di birra-ware. Meglio tardi che mai, giusto? E 'stato lì probabilmente dal 2007, quindi mi sarei sorpreso se non avesse finalmente trovato un po' di tempo dopo aver chiesto nel 2010.

  

"Java Port da: Jonathan Abbazia, jonabbey@arlut.utexas.edu"

     

"MD5Crypt.java è un porto di FreeBSD originale di Poul-Henning Kamp   algoritmo di hash MD5-based, con metodi aggiuntivi per sostenere il   Apache HTTPd variante del server di questo algoritmo ".

     

"La stringa risultante sarà in forma '$ apr1 $ $ '"

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

md5crypt è quello che stai cercando. Implementa Apache htpasswd algoritmi

  

algoritmo di Apache-specifico utilizzando un iterata ( 1.000 volte ) digest MD5 di varie combinazioni di un casuale a 32 bit sale e Password .

import org.apache.commons.codec.digest.Md5Crypt;
...
String enPasswd = Md5Crypt.md5Crypt("your plain password".getBytes());
String htpasswdContent = "your username:" + enPasswd;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top