Pour éviter des attaques par force brute, la meilleure solution est :
Dans les applications, on peut aussi introduire un temps d'attente entre l'introduction du mot de passe par l'utilisateur et son évaluation. L'éventuel attaquant devrait dans ce cas attendre plus longtemps pour pouvoir soumettre les mots de passe qu'il génère. Le système peut aussi introduire un temps d'attente après plusieurs essais infructueux, ceci dans le but de ralentir l'attaque. Les systèmes de mots de passe comme celui d'Unix utilisent une version modifiée du chiffrement DES. Chaque mot de passe est accompagné d'une composante aléatoire appelée sel dont le but est de modifier la structure interne de DES et éviter ainsi une recherche exhaustive en utilisant du matériel spécialement conçu pour DES.
Deux brevets principaux existent à ce sujet :
En théorie et avec suffisamment de temps, l'attaquant peut toujours trouver le mot de passe, mais lorsque ce temps dépasse la décennie, il ne pourra pas en escompter un grand profit, et le mot de passe aura de toute façon changé. Il change même à chaque fois si l'on emploie le principe du masque jetable.
Le problème est tout autre si l'attaquant récupère directement le fichier des hashs des mots de passe ; plus rien ne l'empêche alors de tester chez lui des mots de passe à la vitesse de son(es) ordinateur(s). C'est pourquoi dans tous les UNIX modernes ces hashs sont généralement situés dans le fichier /etc/shadow, lisible uniquement par l'utilisateur root. Une compromission de cet utilisateur permet par conséquent de récupérer ce fichier, et ainsi de lancer une attaque par force brute sur son contenu.