Lorsqu'un mot de passe est utilisé pour déverrouiller un objet matériel comme une carte à puce, il est stocké et protégé physiquement par cet objet.
Dans la plupart des autres cas, ce sont les empreintes cryptographiques des mots de passe qui seront stockées dans un fichier du système, c'est-à-dire une valeur caractéristique du mot de passe mais qui ne permet pas de remonter à ce dernier. Ces empreintes sont calculées à l'aide d'une fonction de hachage cryptographique.
Les attaques sur les mots de passe consistent donc à calculer des empreintes, c'est-à-dire les valeurs de sortie d'une fonction de hachage, et à les comparer à celles contenues dans les fichiers de mots de passe. On peut distinguer :
Les craquages par force brute
Les craquages par dictionnaire
Les craquages par compromis temps/mémoire