Leggendo diverse guide ho sempre letto che, a fini di sicurezza, il salvataggio delle password in db conviene farlo in md5 o sha1.

Tuttavia sul web si trovano alcuni siti che permettono di "decriptare" tali hash grazie ad un database che contiene una serie di hash "famosi":

http://md5.gromweb.com/?md5=5f4dcc3b...8327deb882cf99

Ad esempio "5f4dcc3b5aa765d61d8327deb882cf99" è md5 della stringa "password" (l'ho testato e funziona con molte parole di senso compiuto): quindi la sicurezza di tali hash è del tutto relativa cioè dipende dalla password scelta da chi si registra!

A questo punto ho maturato una convinzione (forse sbagliata????)!!

Non è più sicuro un sistema di criptaggio two-way (si dice così?) cioè criptaggi "reversibili" a chiave segreta? (come si chiamano tecnicamente?)
Ne ho provati alcuni:
- funzione cript() (sfruttando il secondo parametro)
- http://forum.html.it/forum/showthrea...hreadid=786252
- http://php.html.it/script/vedi/5495/...ption-library/
- http://free-script.it/post/Script_ph...assword-26.htm

Per poter decriptare i dati in tal caso sarà necessario oltre che fare una sql injection anche risalire alla chiave utilizzata per criptare e conoscere la funzione utilizzata!!

Dalla teoria alla pratica...
Tale dubbio mi è sorto mentre stavo studiando un sistema di recupero password di un sistema di login.
Ovviamente salvando in md5 o sha1 mi complicava la procedura di recupero password in quanto mi obbligava a cambiarla, a seguito di invio di una mail con una variabile GET che nn ho ancora capito bene cosa deve contenere.
Mentre con sistemi di criptaggio reversibili sarebbe molto più semplice recuperare la password...