Ci stai chiedendo il modo migliore per spararti ai piedi. Poiché Peter Harmann dice, non c'è assolutamente alcun motivo legittimo per fare il recupero della password decifrando e inviando email alle password. Se è possibile decodificare le password, un utente malintenzionato potrebbe potenzialmente fare lo stesso. L'intero punto di hashing della password è di evitarlo! Inoltre, l'e-mail non è un mezzo molto sicuro, quindi la posta in entrata dei cittadini sporchi di password non è una buona pratica.
Quindi cosa fare invece? Il modo tradizionale per eseguire il ripristino della password è inviare tramite e-mail un collegamento per la reimpostazione della password all'utente. Il link contiene un token long random sicuro, collegato all'utente. Questo token consente alla persona che fa clic sul collegamento di cambiare la password una volta. Si noti che il token dovrebbe scadere entro un tempo ragionevole. Se vuoi saperne di più, Troy Hunt ha un bel articolo su di esso.
Mentre ci sei, ci sono alcune cose importanti che devi fare per migliorare il tuo hashing della password:
- Soprattutto, e questo è un grosso problema, non utilizzare un singolo round di SHA-256. Questo non è abbastanza buono. È necessario utilizzare un algoritmo lento, come bcrypt o simile. Vedi questa domanda .
- È meglio usare un salt casuale che usare il nome utente. Questo non è importante quanto il punto precedente, ma è comunque una buona pratica.