RevealTheme logo

Générateur de hachage (MD5 / SHA)

Générez des empreintes cryptographiques : MD5, SHA-1, SHA-256, SHA-384 et SHA-512. S'exécute dans votre navigateur via la Web Crypto API.

Que sont les empreintes cryptographiques et quand en avez-vous besoin ?

Une fonction de hachage cryptographique est un algorithme déterministe qui convertit n'importe quelle entrée (quelques octets, un fichier de plusieurs gigaoctets ou l'intégralité de Wikipédia en anglais) en une sortie de taille fixe appelée « condensé » (digest) ou « empreinte » (hash). SHA-256 produit 256 bits (64 caractères hexadécimaux) ; SHA-512 produit 512 bits ; MD5 produit 128 bits. Quatre propriétés définissent une empreinte « cryptographique », par opposition à une empreinte non cryptographique (comme CRC32) : le déterminisme (même entrée → même empreinte, toujours), l'effet d'avalanche (changer un seul bit modifie environ la moitié des bits de sortie), la résistance à la préimage (vous ne pouvez pas inverser l'empreinte pour récupérer l'entrée) et la résistance aux collisions (vous ne pouvez pas trouver deux entrées produisant la même empreinte). Lorsqu'une fonction de hachage est cassée, ce sont généralement ces deux dernières propriétés qui tombent : les attaques par collision contre MD5 (2004) et SHA-1 (2017) les ont rendus inadaptés à des fins de sécurité, même s'ils restent utiles pour des contrôles d'intégrité non adverses, comme les sommes de contrôle de fichiers. Utilisez SHA-256 ou SHA-512 pour tout nouveau travail de sécurité. Cet outil utilise la Web Crypto API du navigateur (crypto.subtle.digest), accélérée par le matériel sur les appareils modernes, et produit une sortie identique octet par octet à celle d'OpenSSL, du module hashlib de Python et du module crypto de Node.

Cas d'usage courants

  • Vérifiez qu'un fichier téléchargé correspond au SHA-256 indiqué par l'éditeur (ISO Linux, versions d'outils de sécurité).

  • Générez un identifiant adressable par contenu pour des clés de cache (hash du contenu → URL stable).

  • Créez une clé de déduplication pour stocker des fichiers (si les hash correspondent, le fichier est identique).

  • Construisez la vérification de signature des webhooks : HMAC-SHA256 de la charge utile avec un secret partagé.

  • Générez des hash de contenu façon Git (SHA-1 pour les identifiants tree ou blob).

  • Validez l'intégrité d'une ligne de base de données en calculant le hash de ses colonnes clés et en le stockant.

Questions fréquentes

Pourquoi MD5 est-il obsolète pour la sécurité ?
Les cryptographes ont trouvé des moyens de construire deux entrées distinctes produisant le même MD5. Une fois les collisions repérables, MD5 cesse d'être un signal d'intégrité fiable dans les scénarios adverses (quelqu'un pourrait échanger un fichier et en générer un autre avec la même empreinte). Pour des sommes de contrôle non adverses (le fichier a-t-il été téléchargé correctement ?), MD5 fonctionne toujours bien ; il n'est non sûr que pour les signatures numériques ou tout ce qui peut être influencé par un attaquant.
Peut-on inverser les empreintes ?
Pas directement : les empreintes cryptographiques sont des fonctions à sens unique. Mais : (1) pour des entrées courtes ou de faible entropie (mots de passe, phrases courantes), un attaquant peut précalculer les empreintes de chaque entrée probable (tables arc-en-ciel) et y rechercher la vôtre. C'est pourquoi le hachage des mots de passe utilise des sels aléatoires uniques. (2) Pour des entrées de longueur arbitraire et de forte entropie (clés aléatoires, contenu de fichiers), l'inversion est impossible sur le plan computationnel.
Quelle est la différence entre SHA-256 et HMAC-SHA256 ?
SHA-256 est une simple empreinte : quiconque dispose de l'entrée peut calculer la même empreinte. HMAC-SHA256 est une empreinte avec clé : vous avez besoin d'un secret partagé pour la calculer. Les webhooks utilisent HMAC parce que le vérificateur veut savoir « cela a-t-il été créé par quelqu'un qui connaît le secret ? », et non simplement « la charge utile correspond-elle à une valeur connue ? ». Utilisez notre générateur de HMAC pour la variante avec clé.
Quand dois-je utiliser SHA-512 plutôt que SHA-256 ?
SHA-512 possède davantage de bits de sortie (512 contre 256), ce qui rend les attaques par collision théoriquement plus difficiles. Mais SHA-256 est déjà sûr bien au-delà de tout horizon raisonnable (force effective contre les collisions de 2^128). SHA-512 est parfois plus rapide sur du matériel 64 bits en raison de ses opérations internes plus larges. Utilisez SHA-256 par défaut ; utilisez SHA-512 si vous avez une raison concrète.
Pourquoi mon empreinte SHA diffère-t-elle de celle d'un autre outil ?
Trois causes probables : (1) Un encodage d'entrée différent : les octets sur lesquels porte le hachage doivent correspondre. UTF-8, UTF-16 ou Latin-1 produisent des empreintes différentes pour le même texte visible. Cet outil encode l'entrée en UTF-8. (2) Un saut de ligne final : certains outils ajoutent un saut de ligne et d'autres non. (3) Le BOM (marque d'ordre des octets) : un préfixe caché de trois octets que certains éditeurs ajoutent aux fichiers UTF-8.
Est-il sûr de l'utiliser avec des données sensibles ?
Oui : le calcul de l'empreinte se fait localement dans votre navigateur via Web Crypto. L'entrée ne quitte jamais votre appareil. Les empreintes en elles-mêmes ne sont pas « sensibles » au sens où elles ne révèlent pas l'entrée (en supposant une entropie suffisante), mais si vous calculez l'empreinte de données de faible entropie (comme des mots de passe non salés), gardez à l'esprit que quiconque voit l'empreinte pourrait parvenir à l'inverser à l'aide de tables arc-en-ciel.

Outils connexes