Skip to content

Hashcat ou John the Ripper : quel cracker choisir ?

Comparaison pratique de hashcat et John the Ripper — forces GPU et CPU, détection automatique, modes -m, formats jumbo, dictionnaires et règles — avec des commandes d'exemple.

Publié le 3 min de lecture

Une fois le hash identifié, la décision suivante consiste à choisir l'outil à lui opposer. Les deux crackers de mots de passe dominants sont hashcat et John the Ripper. Ils se recoupent largement, mais chacun a son domaine de prédilection, et savoir lequel dégainer fait gagner un temps précieux.

Ce qui distingue les deux outils

Hashcat privilégie le GPU. Il est conçu pour saturer une ou plusieurs cartes graphiques, et sur des hash rapides et non salés, ce débit est colossal. La contrepartie : hashcat est explicite, vous devez lui indiquer l'algorithme via un mode numérique -m. Il n'y a aucune détection automatique — vous fournissez le mode obtenu lors de l'identification.

John the Ripper privilégie le CPU et la simplicité. La version communautaire « jumbo » prend en charge un catalogue immense de formats, dont beaucoup que hashcat ne couvre pas, et elle détecte automatiquement le format du fichier dans la plupart des cas. John embarque aussi les utilitaires *2john (zip2john, pdf2john, etc.) qui extraient un hash cassable d'un fichier conteneur.

Une règle empirique raisonnable : optez pour hashcat quand vous disposez d'un GPU et d'un hash courant et rapide comme MD5 ou SHA-256 ; optez pour John quand vous êtes sur CPU, face à un format inhabituel, ou que vous voulez laisser la détection automatique réfléchir à votre place.

Commandes d'exemple

Une attaque par dictionnaire directe dans hashcat contre une empreinte MD5 (mode 0) :

hashcat -m 0 -a 0 hash.txt rockyou.txt

Pour NTLM, vous changez uniquement le mode en 1000 ; pour bcrypt, c'est 3200. Le numéro correspondant figure sur chaque page de type de hash.

L'équivalent dans John the Ripper, en le laissant détecter le format, est tout simplement :

john --wordlist=rockyou.txt hash.txt

Si vous voulez imposer le format explicitement — utile quand la détection hésite, par exemple entre MD5 brut et NTLM — nommez-le :

john --format=nt --wordlist=rockyou.txt hash.txt

Dictionnaires et règles

Les deux outils ne valent que ce que valent les candidats que vous leur fournissez. Un dictionnaire fournit les essais de base ; les règles les mutent — ajout de chiffres, substitution de lettres par des symboles, bascule de la casse — si bien qu'une seule entrée comme password se déploie en Password1, p@ssw0rd et des milliers de variantes. Ajoutez des règles avec -r best64.rule dans hashcat ou --rules dans John.

Les algorithmes lents et salés comme sha512crypt résistent à la force brute par conception ; contre eux, un dictionnaire intelligent piloté par des règles l'emporte à chaque fois sur la vitesse brute. Si la différence entre hash rapides et lents vous est encore floue, l'article suivant — pourquoi les hash rapides sont dangereux — explique précisément pourquoi le choix de l'algorithme domine tout le calcul.

Articles liés

Un hash mystérieux entre les mains ? Découvrez les indices qui révèlent son type — longueur, jeu de caractères, préfixes comme $2y$ ou $6$ — et identifiez-le dans votre navigateur.
MD5 et SHA-1 tombent en quelques secondes sous un GPU car ils sont rapides et souvent non salés. Découvrez pourquoi les KDF lents comme bcrypt et Argon2 résistent.
rockyou.txt est une ligne de départ, pas une stratégie. Comment combiner dictionnaires soignés, règles, masques et listes ciblées, et quand chacun gaspille du temps GPU.