Stai parlando di attacchi online , qualcuno sta inserendo password tramite il sito web. Questo è possibile rallentare con i metodi che hai descritto, anche se non è così facile come potresti pensare.
Quando leggi le password di cracking, normalmente parli di attacchi offline , ecco perché dopo tutto si calcolano gli hash. Pensa alla situazione in cui qualcuno potrebbe leggere tutti gli hash delle password (ad esempio SQL-injection o da un backup eliminato ...). Quindi l'attaccante può eseguire la forza bruta velocemente quanto il suo hardware può fare, ad es. usa la GPU per calcolare gli hash. Anche in questo caso è possibile rallentare l'attacco, per questo motivo oggi si utilizzano funzioni di derivazione chiave lente come BCrypt o PBKDF2. Questi algoritmi consentono di definire un fattore di costo, che definisce il numero di iterazioni eseguite, in modo da poter controllare il tempo impiegato per calcolare un singolo hash.
Un esempio: se puoi calcolare 8 Giga MD5 hash al secondo tutte le combinazioni di password fino a 6 cifre possono essere calcolato in 2 secondi. Se hai bisogno anche di 1 millisecondo per hash, hai già bisogno di 8 mesi.