L'identification de hash est le processus qui consiste à déterminer quel algorithme de hachage cryptographique a produit un condensat donné. Les fonctions de hachage cryptographique comme MD5, SHA-1 et SHA-256 produisent chacune des sorties de longueur fixe, et cette longueur de sortie est le signal principal utilisé pour identifier un hash inconnu. Lorsque vous rencontrez une chaîne hexadécimale dans un dump de base de données, un fichier de configuration ou une réponse d'API, un outil d'identification de hash vous indique quel algorithme l'a probablement généré.
Chaque algorithme de hachage fait correspondre des données d'entrée arbitraires à une sortie de taille fixe appelée condensat. MD5 produit toujours 128 bits (32 caractères hex), SHA-1 produit toujours 160 bits (40 caractères hex), et SHA-256 produit toujours 256 bits (64 caractères hex). Cette longueur de sortie déterministe est ce qui rend l'identification algorithmique possible sans accès à l'entrée d'origine ni au code de hachage.
L'identification par la seule longueur n'est pas toujours définitive. Plusieurs algorithmes partagent la même taille de sortie — par exemple, SHA-256 et SHA3-256 produisent tous deux des condensats hex de 64 caractères. Dans ces cas, un identificateur de hash fournit une liste d'algorithmes candidats classés par prévalence. Des indices contextuels tels que le système source, le format d'encodage (hex vs. Base64) et la présence de préfixes d'algorithme (comme '$2b$' pour bcrypt) permettent de réduire les possibilités.
Pourquoi utiliser un identificateur de hash ?
Les hash inconnus apparaissent régulièrement lors d'audits de sécurité, de migrations de bases de données et d'analyses forensiques. Un identificateur de hash supprime les approximations et vous pointe vers le bon algorithme en quelques secondes.
⚡
Détection instantanée
Collez un hash et obtenez immédiatement les algorithmes candidats. Inutile de compter manuellement les caractères ou de consulter des tables de référence — l'outil associe automatiquement la longueur hex à tous les algorithmes correspondants.
🔒
Analyse respectueuse de la vie privée
Toute l'identification s'exécute entièrement dans votre navigateur en JavaScript. La valeur du hash ne quitte jamais votre appareil, ce qui est important lors de l'analyse de hash de mots de passe, de jetons d'authentification ou de preuves forensiques sensibles.
📋
Couverture complète des algorithmes
Détecte MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, et leurs équivalents SHA-3. La table de référence couvre les familles complètes SHA-2 et SHA-3 ainsi que les alternatives courantes comme RIPEMD-160 et BLAKE2.
🚫
Sans compte ni installation
Fonctionne instantanément dans tout navigateur moderne. Aucune inscription, aucune clé API, aucun outil CLI à installer. Ajoutez-le à vos favoris et utilisez-le chaque fois que vous rencontrez un hash inconnu — sur n'importe quel OS, n'importe quel appareil.
Cas d'usage de l'identificateur de hash
Audit de sécurité
Lors des tests de pénétration, identifier les algorithmes de hash de mots de passe dans des bases de données compromises détermine l'approche de craquage. Les hash MD5 et SHA-1 indiquent une protection faible et peuvent être priorisés pour la remédiation.
Migration de base de données
Lors de la migration d'enregistrements utilisateurs entre systèmes, l'algorithme de hash de mot de passe stocké doit être connu pour configurer correctement la nouvelle couche d'authentification. Une mauvaise identification de l'algorithme provoque l'échec de toutes les connexions.
DevOps et CI/CD
Les pipelines de build incluent souvent des sommes de contrôle pour la vérification des artefacts. Identifier si une somme de contrôle est SHA-256 ou SHA-512 garantit l'utilisation de la bonne commande de vérification dans vos scripts de déploiement.
Forensique numérique
Les examinateurs forensiques rencontrent des condensats de hash dans les journaux d'intégrité de fichiers, les enregistrements blockchain et les métadonnées de preuves. Identifier l'algorithme est un prérequis pour vérifier la chaîne de custody des preuves.
Intégration d'API
Les API tierces retournent parfois des valeurs de hash sans documenter l'algorithme. Identifier le type de hash depuis la réponse vous permet de configurer correctement la vérification de signature de webhook ou la validation de somme de contrôle.
Apprentissage de la cryptographie
Les étudiants qui suivent des cours de cryptographie peuvent coller des hash générés par différents algorithmes et voir immédiatement la relation entre le choix d'algorithme, la longueur de sortie et les propriétés de sécurité.
Référence des longueurs d'algorithmes de hash
Le tableau ci-dessous associe chaque algorithme de hash courant à sa taille de sortie en bits, caractères hex et octets bruts. C'est la table de correspondance principale utilisée par les outils d'identification de hash. Lorsque plusieurs algorithmes partagent la même longueur hex, vous avez besoin de contexte supplémentaire pour les distinguer.
Algorithme
Bits
Caractères hex
Octets
Notes
MD5
128
32
16
Broken — collisions trivial since 2004
SHA-1
160
40
20
Deprecated — SHAttered attack (2017)
SHA-224
224
56
28
Truncated SHA-256; rarely used standalone
SHA-256
256
64
32
Current standard; TLS, Git, Bitcoin
SHA-384
384
96
48
Truncated SHA-512; CNSA Suite approved
SHA-512
512
128
64
Maximum SHA-2 output; large-data hashing
SHA3-256
256
64
32
Keccak-based; NIST alternative to SHA-2
SHA3-512
512
128
64
Keccak-based; highest SHA-3 strength
RIPEMD-160
160
40
20
Used in Bitcoin address derivation
BLAKE2s
256
64
32
Faster than SHA-256; 256-bit output
Lever l'ambiguïté des longueurs de hash
Certaines longueurs hex correspondent à plusieurs algorithmes. Les deux ambiguïtés les plus courantes sont les hash de 64 caractères (SHA-256 vs. SHA3-256) et les hash de 40 caractères (SHA-1 vs. RIPEMD-160). Voici comment les distinguer quand la seule longueur est insuffisante.
64 caractères hex : SHA-256 vs. SHA3-256
Les deux produisent des condensats de 256 bits (64 caractères). SHA-256 est de loin le plus courant en pratique — les commits Git, les certificats TLS, les blocs Bitcoin et la plupart des signatures API utilisent SHA-256. SHA3-256 ne se trouve généralement que dans les systèmes qui exigent explicitement la conformité NIST SP 800-185 ou des constructions basées sur Keccak. Consultez la documentation du système source pour confirmer.
40 caractères hex : SHA-1 vs. RIPEMD-160
SHA-1 est de loin le hash 160 bits le plus répandu — utilisé historiquement dans Git (avant la transition vers SHA-256), TLS et la signature de code. RIPEMD-160 apparaît principalement dans la génération d'adresses Bitcoin (HASH160 = SHA-256 suivi de RIPEMD-160). Si le hash provient d'un contexte de cryptomonnaie, envisagez RIPEMD-160 ; sinon, SHA-1 est le candidat le plus probable.
Exemples de code
Voici des implémentations fonctionnelles de l'identification de hash par longueur hex dans quatre langages. Chaque fonction valide l'encodage hex, recherche le nombre de caractères et retourne tous les algorithmes correspondants.
package main
import (
"fmt"
"regexp"
)
var hexPattern = regexp.MustCompile("^[0-9a-fA-F]+$")
var hashLengths = map[int][]string{
32: {"MD5"},
40: {"SHA-1", "RIPEMD-160"},
56: {"SHA-224", "SHA3-224"},
64: {"SHA-256", "SHA3-256", "BLAKE2s"},
96: {"SHA-384", "SHA3-384"},
128: {"SHA-512", "SHA3-512", "BLAKE2b"},
}
func identifyHash(hex string) []string {
if !hexPattern.MatchString(hex) {
return []string{"Not a hex-encoded hash"}
}
if algos, ok := hashLengths[len(hex)]; ok {
return algos
}
return []string{fmt.Sprintf("Unknown (%d hex chars)", len(hex))}
}
func main() {
fmt.Println(identifyHash("d41d8cd98f00b204e9800998ecf8427e"))
// → [MD5]
}
CLI (Bash)
#!/bin/bash
# Identify a hash from the command line by character count
hash="$1"
if [[ ! "$hash" =~ ^[0-9a-fA-F]+$ ]]; then
echo "Not a hex-encoded hash"
exit 1
fi
len=${#hash}
case $len in
32) echo "MD5 (128-bit)" ;;
40) echo "SHA-1 or RIPEMD-160 (160-bit)" ;;
56) echo "SHA-224 or SHA3-224 (224-bit)" ;;
64) echo "SHA-256 or SHA3-256 (256-bit)" ;;
96) echo "SHA-384 or SHA3-384 (384-bit)" ;;
128) echo "SHA-512 or SHA3-512 (512-bit)" ;;
*) echo "Unknown hash length: $len chars" ;;
esac
# Usage: ./identify.sh d41d8cd98f00b204e9800998ecf8427e
# → MD5 (128-bit)
Questions fréquentes
Comment fonctionne l'identification de hash ?
L'identification de hash repose principalement sur la longueur du condensat encodé en hex. Chaque algorithme de hachage produit un nombre fixe de bits en sortie : MD5 produit 128 bits (32 chars hex), SHA-1 produit 160 bits (40 chars hex), SHA-256 produit 256 bits (64 chars hex), et ainsi de suite. L'identificateur mesure la longueur de la chaîne, vérifie qu'elle ne contient que des caractères hexadécimaux, puis la fait correspondre aux tailles de sortie des algorithmes connus.
Un identificateur de hash peut-il déterminer l'algorithme exact avec certitude ?
Pas toujours. Plusieurs algorithmes peuvent produire la même longueur de sortie. SHA-256 et SHA3-256 produisent tous deux 64 caractères hex. SHA-1 et RIPEMD-160 produisent tous deux 40 caractères hex. Dans ces cas, l'outil retourne tous les candidats. Vous avez besoin de contexte — le système source, la documentation ou les préfixes d'algorithme — pour réduire à un seul algorithme.
Et si mon hash est encodé en Base64 plutôt qu'en hex ?
Les hash encodés en Base64 utilisent un jeu de caractères différent (A-Z, a-z, 0-9, +, /) et ont des longueurs différentes de leurs équivalents hex. Un hash de 256 bits fait 44 caractères Base64 mais 64 caractères hex. Décodez d'abord la chaîne Base64 en octets bruts, puis vérifiez la longueur en octets : 16 octets = MD5, 20 octets = SHA-1, 32 octets = SHA-256, 48 octets = SHA-384, 64 octets = SHA-512.
Est-il sûr de coller des hash de mots de passe dans un identificateur en ligne ?
Cet outil s'exécute entièrement dans votre navigateur — aucune donnée n'est transmise à un quelconque serveur. Le hash ne quitte jamais votre appareil. Cela dit, pour une sécurité opérationnelle maximale lors d'un audit formel, vous pouvez le vérifier en inspectant l'onglet réseau dans les outils de développement de votre navigateur, ou en utilisant l'outil hors ligne après chargement de la page.
Pourquoi MD5 est-il encore utilisé s'il est cryptographiquement compromis ?
MD5 est compromis pour la résistance aux collisions — un attaquant peut concevoir deux entrées différentes qui produisent le même hash. Cependant, MD5 est encore utilisé dans des contextes non liés à la sécurité : sommes de contrôle de fichiers pour la vérification de téléchargements, clés de cache, déduplication et ETags en HTTP. Pour ces usages, les collisions accidentelles sont extrêmement improbables et les attaques délibérées ne sont pas une préoccupation. MD5 ne doit pas être utilisé pour le hachage de mots de passe, les signatures numériques ou la vérification de certificats.
Comment identifier des hash bcrypt, scrypt ou Argon2 ?
Les fonctions de hachage de mots de passe comme bcrypt, scrypt et Argon2 utilisent des préfixes de chaîne distinctifs plutôt qu'une sortie hex brute. Les hash bcrypt commencent par '$2a$', '$2b$' ou '$2y$' suivi d'un facteur de coût. Les hash Argon2 commencent par '$argon2id$' ou '$argon2i$'. Les hash scrypt commencent généralement par '$scrypt$'. Ce ne sont pas des condensats cryptographiques bruts, donc l'identification par longueur ne s'applique pas — le préfixe lui-même identifie l'algorithme.
Quelle est la différence entre SHA-2 et SHA-3 ?
SHA-2 (qui comprend SHA-256, SHA-384 et SHA-512) est basé sur la construction de Merkle-Damgard conçue par la NSA et normalisée dans FIPS 180-4. SHA-3 (SHA3-256, SHA3-384, SHA3-512) est basé sur la construction en éponge Keccak, sélectionnée par un concours public NIST et normalisée dans FIPS 202. Ils produisent les mêmes longueurs de sortie à des niveaux de sécurité équivalents, mais utilisent des structures internes fondamentalement différentes. SHA-3 a été conçu comme solution de repli au cas où des faiblesses structurelles seraient découvertes dans SHA-2, bien qu'aucune de telles faiblesses n'ait été démontrée.