Qui presumo che il tuo obiettivo sia (come suggerisce @owen) di interrompere l'uso di password comuni (ad esempio password123) utilizzate dalla tua base utente. Questa è generalmente una "brutta cosa" per la sicurezza, poiché vincolerai artificialmente la scelta della password in un modo che è imprevedibile per l'utente.
Se pensi all'esperienza dell'utente finale di questa funzione, potresti fornire loro un messaggio "hey hai scelto una password comune, scegli un'altra"? Se è così, scommetto che la maggior parte degli utenti manterrà un 1 o! alla fine della password e riprovare e / o sentirsi frustrati e andarsene (a seconda del sito), e dato che non hai intenzione di rivelare l'elenco delle password più utilizzate, non c'è modo per l'utente di sapere quali sono / non sono ammessi.
Un approccio migliore potrebbe essere quello di controllare le password in base a un elenco comune, a cui è possibile indicarle e, se scelgono una di queste password, suggeriscono che è una cattiva idea, ma lasciale andare avanti se scelgono di farlo.
Detto questo, supponendo che il tuo obiettivo qui sia come sopra, non avresti bisogno di avere le password associate a specifici account utente che ti serviranno in una lista, quindi non c'è molto sbagliato (nella maggior parte dei casi) con semplicemente memorizzandoli con lo stesso sale e hash, quindi controllando quando aggiungi nuovi utenti. Se un utente malintenzionato compromette tale tabella, tutto ciò che ha (se si rompe gli hash) è un elenco di password utilizzate nel database senza alcun modo diretto per associarle a utenti specifici.
Un altro rischio da considerare se si prende questo approccio è che se il sistema consente agli utenti di auto-registrarsi, un utente malintenzionato potrebbe semplicemente iterare su password comunemente usate per vedere quali sono stati usati dagli utenti in quanto l'applicazione li rifiuterà. ..