Ho appena ereditato un progetto in cui tutte le password sul lato server sono semplicemente convertite in base64 e inserite nel database. Niente sale, niente hash, niente. Solo un semplice tipo di processo db.Add(password.ToBase64)
.
Sicuramente chiunque riesca a mettere le mani su quei dati può facilmente decodificarlo? Da qui il solito approccio sale / hash.
Ho messo in dubbio la decisione di utilizzare le stringhe base64 e mi è stato detto:
Regarding password - If someone is already on your server, you are already under threat irrespective or the encryption you choose. Its same even with someone penetrates your SSL layer itself.
Questo sembra ignorare il fatto che l'hacking in un server non è l'unico modo per accedere a un database. Potrebbe essere facile come passare attraverso il computer non presidiato di qualcuno, inciampare in un backup del database e vedere le stringhe base64 chiaramente ovvie , quindi convertirle gioiosamente tutte in password non elaborate.
So che questa domanda è probabilmente un po 'troppo aperta per il formato usuale di StackExchange, ma il problema non sembra essere trattato molto bene qui con la formulazione della domanda che ho usato. È un argomento molto importante, quindi ho pensato di buttarlo.
Per me è assolutamente ovvio che password shouldn ' essere memorizzati usando solo la conversione di base64 , ma sono ancora relativamente nuovo a tutto questo quindi forse mi sono perso qualcosa.
Grazie.