È più sicuro per:
a) Prendere una password, salarla, quindi cancellarla.
b) Prendere una password, cancellarla, quindi crittografarla (usando un algoritmo simmetrico con una chiave grande)
Ti darò in modo efficace la stessa risposta che hai su crypto.SE quando hai posto questa domanda , ma con qualche spiegazione in più.
Le password dovrebbero essere salate e hash. Periodo. Ora se vuoi cifrarli dopo averli salati e averli tagliati, prendi quello che vuoi. Se esegui non il sale degli hash prima della crittografia, corri il rischio che a) gli hash crittografati risultino identici per password identiche (caso peggiore) o utilizzando un IV univoco per ogni password crittografata che è esattamente come lavorare con un sale ma ha il problema di non fornire alcuna protezione per gli hash non salati se la crittografia è rotta e gli hash grezzi esposti. Questo problema è il motivo per cui abbiamo cancellato le password invece di crittografarle in primo luogo.
Quindi, la linea di fondo è, sale e hash. E hash con una buona, lenta funzione di hash come bcrypt.
L'unico vantaggio potenziale della crittografia vs sale + hash è che è reversibile. Se il tuo cliente insiste per essere in grado di recuperare le password esistenti, allora la crittografia è ciò di cui hai bisogno. Se non è necessario recuperare il valore esistente, la crittografia è meno sicura e una perdita di tempo della CPU.
Leggi altre domande sui tag encryption hash salt