Come decifrare una password per il recupero con php [duplicato]

1

Ho un sito Web a cui le persone possono iscriversi e accedere. Vorrei implementare un sistema di recupero password che ti invia la password decrittografata. Quando l'utente si registra, la password viene salata con il nome utente univoco degli utenti, arricchito con una chiave segreta e quindi sottoposto a hashing con SHA256.

C'è un modo per farlo se conosco la chiave segreta, il nome utente dell'utente, il risultato dell'hash e il metodo di crittografia?

    
posta DMVerfurth 23.04.2018 - 03:26
fonte

3 risposte

8

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.
risposta data 23.04.2018 - 09:39
fonte
3

Hash per definizione è a senso unico. Non è crittografia e quindi NON può essere decodificato. Questo è in base alla progettazione e dovresti MAI inviare la password utente utilizzando la posta. Non farlo. Qualunque sia la ragione che pensi di avere, non è abbastanza buono. Se la password può essere deselezionata, significa che il tuo sistema è guasto.

    
risposta data 23.04.2018 - 08:19
fonte
0

Puoi sicuramente provare a decifrare gli hash. Questo è un processo lento e inefficiente se non si ha l'hardware per farlo, e non c'è alcuna garanzia che avrà successo. Come altri utenti hanno già menzionato, se la password è decifrabile, allora il sistema è rotto. Quello che consiglierei di fare è generare una nuova password e POI inviarla via email all'utente, ma sono solo i miei due centesimi.

    
risposta data 23.04.2018 - 11:13
fonte

Leggi altre domande sui tag