Outil d'identification de hash (recherche inverse) | Détection automatique de MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt, Argon2
Collez une chaîne ressemblant à un hash, et cet outil détermine quel algorithme — MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt ou Argon2 — l'a probablement généré, en se basant sur sa longueur, son jeu de caractères et son préfixe. Tout le traitement s'effectue entièrement dans le navigateur.
La valeur de hash elle-même n'enregistre pas le nom de l'algorithme utilisé pour la générer. Comme plusieurs algorithmes peuvent partager la même longueur de sortie, ce résultat est la « supposition la plus probable » basée sur la longueur, le jeu de caractères et le préfixe, et non une conclusion certaine à 100 %.
Conseils pour identifier un hash
- L'identification se base uniquement sur la longueur, le jeu de caractères (hexadécimal ou Base64) et le préfixe comme indices ; elle ne recalcule pas réellement le hash pour le vérifier. Elle se contente de montrer les candidats déductibles du format.
- BCrypt (
$2a$/$2b$/$2y$) et Argon2 ($argon2id$, etc.) intègrent directement le nom de l'algorithme et les paramètres dans le préfixe, ce qui permet une identification à haute confiance. - Une chaîne hexadécimale de 64 caractères correspond le plus souvent à SHA-256, mais SHA3-256 produit la même longueur ; si vous connaissez le langage ou la bibliothèque du système d'origine, tenez-en compte également.
- Les dumps de hash copiés sur plusieurs lignes (séparés par des sauts de ligne ou des espaces) voient aussi leurs espaces internes automatiquement supprimés avant l'identification, vous pouvez donc les coller tels quels.
- Si vous n'êtes pas certain du résultat, la méthode la plus fiable consiste à vérifier la source du hash — le code source ou la documentation de l'application.
Questions fréquentes
$2b$ ou $argon2id$. Tant que cette information peut être lue, l'algorithme peut être déterminé de manière unique.
Anecdote — Pourquoi une valeur de hash seule ne permet pas de déterminer l'algorithme
Le rôle d'une fonction de hachage est de convertir des données d'entrée en une sortie de longueur fixe, et cette sortie (le condensé) ne contient elle-même aucune métadonnée indiquant quel algorithme l'a produite. C'est une conséquence inévitable de sa conception : intégrer des métadonnées changerait la longueur de la sortie, ce qui briserait la propriété de « longueur fixe » essentielle à une fonction de hachage cryptographique. Il ne nous reste donc, comme indice, que l'« apparence » de la sortie — sa longueur et son jeu de caractères.
Cette limite apparaît le plus nettement dans la relation entre les familles SHA-2 et SHA-3. SHA-256 et SHA3-256 ont des structures internes totalement différentes (SHA-2 utilise une construction de Merkle-Damgård, SHA-3 une construction en éponge), mais toutes deux sont conçues pour produire une sortie de 256 bits, soit 64 caractères hexadécimaux. La même relation existe entre SHA-224/SHA3-224, SHA-384/SHA3-384 et SHA-512/SHA3-512 ; la longueur de sortie seule ne permet donc jamais de trancher. Comme SHA-2 est en pratique bien plus répandu, cet outil présente la variante SHA-2 comme candidat privilégié lorsque les longueurs coïncident, mais il ne s'agit en définitive que d'une supposition statistique.
À l'inverse, des algorithmes de hachage de mots de passe comme BCrypt et Argon2 lèvent cette ambiguïté en adoptant un format autodescriptif appelé Modular Crypt Format. Des chaînes comme $2b$12$... ou $argon2id$v=19$... intègrent sous forme de texte, au début du hash, le nom de l'algorithme, la version et les paramètres, ce qui permet de reconstituer de manière unique la méthode de calcul rien qu'en regardant la chaîne. Face à un hash de ce format, une identification définitive devient possible.
Ce type de travail d'identification intervient dans des situations concrètes : l'analyse de dumps de mots de passe extraits de systèmes hérités, ou les défis de cryptanalyse lors de compétitions de sécurité CTF (Capture The Flag). Réduire les algorithmes possibles à partir d'une valeur de hash permet de décider efficacement quel outil d'analyse ou quelle méthode de cassage essayer ensuite, comme le mode d'attaque à choisir dans Hashcat.