Questa non è una risposta definitiva, solo alcuni pensieri.
1. Hash sul lato client.
Vedo ciò che stai cercando: proteggere la password in testo semplice. Un'idea come questa si basa su ogni sito che utilizza un diverso schema di hashing (altrimenti puoi creare elenchi di quali siti utilizzano lo stesso schema di hashing e sapere che i loro hash / password saranno intercambiabili).
Quindi immagino che questo possa aiutare un po ', ma certamente non risolve il problema, e fa affidamento sugli sviluppatori che cambiano i loro schemi di hashing dal default (che è pericoloso per altri motivi se non capiscono veramente come funziona l'hashing delle password ).
2. Prova a conoscenza zero basata su password
Non sono un esperto in prove a conoscenza zero, ma la mia comprensione è che sono un sottoinsieme di algoritmi a chiave pubblica. Gli algoritmi a chiave simmetrica (come la crittografia AES) possono essere facilmente combinati con password ... chiave pubblica, non così tanto. La mia intuizione è che se ti affidi completamente a questa idea, in pratica stai per reinventare il protocollo SSL autenticato dal client, quindi usalo?
Altri commenti
Le password IMO nel loro insieme sono una nave che affonda; sono un sistema rotto. Questo perché siamo al punto nella storia in cui la capacità dell'hacker di usare password a forza bruta sta iniziando a superare la capacità del cervello umano di ricordare password complesse.
Invece di cercare di riparare una nave che affonda, suggerisco che noi (come settore) ci muoviamo il più velocemente possibile per adottare sistemi di autenticazione non basati su password. Cose come le chiavi 2FA o ssh non hanno gli stessi problemi fondamentali delle password e sono il tipo di soluzioni che dovremmo accettare.
P.S. Al momento della scrittura, la domanda ha 3 voti ravvicinati come "troppo ampi". Ho fatto una cosa pericolosa qui dove ho modificato la domanda dell'OP per essere meno ampia, quindi ho postato una risposta alla domanda formulata di recente. Spero che sia accettabile.