2012-11-11 5 views
20

Ho creato una protezione per le mie pagine Web con apache2 in ubuntu. Ora sto creando un'applicazione in C++ e voglio che usi lo stesso file che Apache2 usa per l'autenticazione, ma il mio problema è che non so come decifrare la password generata da apache2. (Forse ho bisogno di una chiave che viene utilizzata per la crittografia).Decifrare la password creata con htpasswd

Grazie.

risposta

37

.htpasswd voci sono HASHES. Non sono password crittografate. Gli hash sono progettati per non essere decifrabili. Quindi non c'è modo (a meno che tu non ti faccia forza per un tempo mooolto) per ottenere la password dal file .htpasswd.

Quello che devi fare è applicare lo stesso algoritmo di hash alla password fornita e confrontarlo con l'hash nel file .htpasswd. Se l'utente e l'hash sono uguali, allora sei pronto.

+0

ho capito. Ma cosa fa apache2 quando eseguo l'autenticazione nella pagina web? – Mils

+3

@Mils: blocca la password inviata e confronta i valori hash. –

+4

Apache prende la password fornita, l'hash e confronta il nome utente fornito e l'hash generato con la voce username (se esiste) nel file .htpasswd. Se corrispondono, l'utente è autorizzato. –