Quando lavoravo a un'applicazione per il sito web, io e un amico abbiamo chiesto a un esperto di sicurezza (che lavora in IBM) come gestire le password di memorizzazione. Dopo ore di ricerche su google (che hanno generato ore di esplorazione security.stackexchange.com), ho stabilito che avere un database utente con il sale nel DB è sicuro, a condizione che sia un algoritmo per utente e un algoritmo di hashing lento.
L'esperto di sicurezza ha detto che se il DB è stato compromesso, tutto è stato compromesso, il che è vero. Ha suggerito "crittografia unidirezionale", che ... non capisco davvero. Non è hashing, per definizione, a senso unico, mentre la crittografia, per definizione, non lo è?
Se qualcuno fosse in grado di risolvere il problema, sarebbe fantastico.