Convertisseurs

Fonctionnement des fonctions de hachage cryptographiques : MD5 vs SHA-256 vs SHA-512

Découvrez le fonctionnement des fonctions de hachage cryptographiques, de MD5 à SHA-256 et SHA-512. Couvre l'effet avalanche, les attaques par collision, le hachage de mots de passe avec bcrypt/Argon2, l'authentification HMAC et les usages réels dans la blockchain, TLS et Git.

Publié sur 25 mars 2026
16 min lire
Guides CaesarCipher.org

Une fonction de hachage cryptographique prend n'importe quelle entrée, un seul caractère, un fichier de 10 Go, une chaîne vide, et produit une sortie de longueur fixe appelée hachage (aussi appelée digest, somme de contrôle ou empreinte). La même entrée produit toujours le même hachage, mais modifier un seul bit dans l'entrée produit une sortie complètement différente. Cette propriété à sens unique fait des fonctions de hachage un fondement de la sécurité informatique moderne, du stockage des mots de passe et des signatures numériques jusqu'à la blockchain et la vérification d'intégrité des fichiers.

Si vous devez générer un hachage maintenant, utilisez notre générateur de hachage en ligne gratuit : il calcule les hachages MD5, SHA-1, SHA-256, SHA-384 et SHA-512 pour le texte et les fichiers entièrement dans votre navigateur.

Qu'est-ce qu'une fonction de hachage cryptographique ?

Une fonction de hachage est un algorithme mathématique qui associe des données de taille arbitraire à une sortie de taille fixe. Une fonction de hachage cryptographique est une fonction de hachage qui satisfait des exigences de sécurité supplémentaires, ce qui la rend adaptée aux protocoles de sécurité.

Le concept remonte aux années 1950, lorsque Hans Peter Luhn, chez IBM, a créé l'algorithme de Luhn pour la détection d'erreurs. Les fonctions de hachage cryptographiques modernes sont apparues dans les années 1990 avec MD4 (1990) et MD5 (1991) de Ronald Rivest, suivies de SHA-0 (1993) et SHA-1 (1995) de la NSA, puis de la famille SHA-2 (2001), qui inclut SHA-256 et SHA-512.

Les cinq propriétés d'une fonction de hachage sûre

Toute fonction de hachage cryptographique doit satisfaire cinq propriétés essentielles :

1. Déterministe

La même entrée produit toujours la même sortie. Si vous hachez "hello" avec SHA-256 aujourd'hui, demain ou sur n'importe quel ordinateur du monde, vous obtiendrez toujours 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824. Cette propriété rend les fonctions de hachage utiles pour la vérification.

2. Calcul rapide

Le calcul du hachage de n'importe quelle entrée doit être efficace. SHA-256 peut traiter plusieurs centaines de mégaoctets par seconde sur du matériel moderne. Cette vitesse est essentielle pour des applications comme TLS (où chaque paquet est authentifié) et le minage de blockchain (où des milliards de hachages par seconde sont calculés).

3. Résistance à la préimage (sens unique)

Étant donné une sortie de hachage, il doit être informatiquement irréalisable de trouver une entrée qui produit ce hachage. C'est ce qui rend le hachage "à sens unique". Si un attaquant obtient un hachage de mot de passe comme 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8, il ne peut pas reconstruire directement le mot de passe original "password" (même s'il peut essayer de deviner des mots de passe courants, ce qui explique l'usage du salage et des fonctions spécialisées de hachage de mots de passe).

4. Résistance aux collisions

Il doit être informatiquement irréalisable de trouver deux entrées différentes qui produisent la même sortie de hachage. Comme les fonctions de hachage associent un espace d'entrée infini à un espace de sortie fini, les collisions existent nécessairement d'un point de vue mathématique (principe des tiroirs). La garantie de sécurité est que trouver une collision devrait prendre plus longtemps que la durée d'utilisation attendue de l'algorithme.

Pour SHA-256 et sa sortie de 256 bits, trouver une collision par force brute nécessite environ 2^128 opérations (borne de l'attaque des anniversaires), soit plus d'opérations qu'il n'y a d'atomes dans l'univers observable.

5. Effet avalanche

Une petite modification de l'entrée doit produire un hachage radicalement différent. On parle parfois d'"effet avalanche" ou de "diffusion". Voici un exemple concret avec SHA-256 :

EntréeHachage SHA-256
hello2cf24dba5fb0a30e26e83b2ac5b9e29e...
Hello185f8db32271fe25f561a6fc938b2e26...
hello!ce06092fb948d9ffac7d1a376e404b26...

Changer un seul caractère (le 'h' minuscule en 'H' majuscule) change chaque caractère de la sortie de hachage. Il n'existe aucun moyen de prédire comment le hachage changera, ni de remonter du hachage vers l'entrée.

Fonctionnement interne des fonctions de hachage

Même si les détails internes complets sont complexes, le processus de base suit un motif commun à la plupart des algorithmes de hachage :

Étape 1 : remplissage. L'entrée est complétée pour atteindre un multiple de la taille de bloc de l'algorithme (512 bits pour MD5/SHA-1/SHA-256, 1024 bits pour SHA-512). Le remplissage inclut la longueur du message original.

Étape 2 : initialisation. Un état interne est initialisé avec des constantes fixes (les "valeurs de hachage initiales"). Pour SHA-256, elles sont dérivées des parties fractionnaires des racines carrées des 8 premiers nombres premiers.

Étape 3 : compression. Chaque bloc de l'entrée remplie est traité par une fonction de compression qui met à jour l'état interne. Cette fonction implique généralement des opérations bit à bit (AND, OR, XOR, rotations), des additions modulaires et un ordonnancement des messages. SHA-256 effectue 64 tours de compression par bloc ; SHA-512 en effectue 80.

Étape 4 : finalisation. Une fois tous les blocs traités, l'état interne final est émis comme valeur de hachage.

La sécurité de l'algorithme dépend de la capacité de la fonction de compression à faire dépendre chaque bit de sortie de chaque bit d'entrée d'une manière complexe et non linéaire.

MD5 : histoire, vulnérabilités et usage actuel

MD5 (Message Digest Algorithm 5) a été conçu par Ronald Rivest en 1991 comme successeur de MD4. Il produit un hachage de 128 bits (32 caractères hexadécimaux) et a été l'algorithme de hachage dominant pendant les années 1990 et le début des années 2000.

La chute de MD5

  • 1996 : Hans Dobbertin découvre des collisions dans la fonction de compression de MD5, suscitant les premières inquiétudes.
  • 2004 : Xiaoyun Wang et ses collègues démontrent la première attaque par collision pratique, en trouvant deux entrées différentes avec le même hachage MD5 en environ une heure.
  • 2006 : Vlastimil Klima publie une méthode pour trouver des collisions MD5 en une minute sur un ordinateur portable.
  • 2008 : Alexander Sotirov et d'autres utilisent une collision MD5 pour forger un certificat d'autorité de certification frauduleux, permettant l'interception HTTPS. C'est la preuve définitive que MD5 est dangereux en pratique.
  • 2012 : le malware Flame (attribué à des acteurs étatiques) utilise une collision MD5 pour forger des certificats Windows Update.

Aujourd'hui, les attaques par collision contre MD5 peuvent être réalisées en quelques secondes sur du matériel grand public.

Quand MD5 reste acceptable

Malgré son échec cryptographique, MD5 reste utilisé pour des objectifs non liés à la sécurité :

  • Sommes de contrôle non malveillantes de fichiers : vérifier qu'un téléchargement n'a pas été corrompu pendant le transfert (pas qu'il n'a pas été altéré volontairement)
  • Déduplication de données : identifier les fichiers dupliqués dans les systèmes de stockage
  • Clés de cache : générer des identifiants courts et uniques pour des données mises en cache
  • Distribution de tables de hachage : répartir des clés entre les buckets d'une table de hachage
  • Compatibilité avec les systèmes hérités : interagir avec d'anciens systèmes qui ne prennent en charge que MD5

La distinction clé : si un attaquant peut tirer profit de la création d'une collision, n'utilisez pas MD5. Si vous avez seulement besoin d'une somme de contrôle rapide pour une vérification d'intégrité non adversariale, MD5 convient.

SHA-1 : le compromis désormais obsolète

SHA-1 (Secure Hash Algorithm 1) a été publié par la NSA en 1995 et produit un hachage de 160 bits (40 caractères hexadécimaux). Il a été la fonction de hachage la plus utilisée pendant plus d'une décennie, alimentant les certificats SSL/TLS, les commits Git et la signature de code.

Le déclin de SHA-1

  • 2005 : des attaques théoriques par collision montrent que SHA-1 est plus faible que prévu.
  • 2017 : Google et CWI Amsterdam démontrent la première collision SHA-1 pratique ("SHAttered"), en trouvant deux fichiers PDF différents avec le même hachage SHA-1. L'attaque a nécessité 6 500 années de calcul CPU et 110 années de calcul GPU, coûteuse mais faisable pour des attaquants bien financés.
  • 2020 : une attaque par collision à préfixe choisi réduit le coût à environ 45 000 $, le rendant accessible à de plus petites organisations.

SHA-1 aujourd'hui

  • Déprécié par tous les grands navigateurs pour les certificats TLS (depuis 2017)
  • Git utilise encore SHA-1 pour les hachages de commits, mais migre activement vers SHA-256 (format d'objet de hachage git v2)
  • Ne doit pas être utilisé dans de nouvelles applications de sécurité

SHA-256 et SHA-512 : le standard actuel

SHA-256 et SHA-512 font partie de la famille SHA-2, publiée par la NSA en 2001. Ce sont les standards actuellement recommandés pour le hachage cryptographique.

SHA-256

  • Sortie : 256 bits (64 caractères hexadécimaux)
  • Taille de bloc : 512 bits (opère sur des mots de 32 bits)
  • Tours : 64 tours de compression
  • Sécurité : aucune attaque pratique ou théorique connue. Trouver une collision nécessiterait environ 2^128 opérations.
  • Utilisé dans : certificats TLS 1.2/1.3, Bitcoin (double-SHA-256), HMAC pour l'authentification API (AWS, Stripe), adressage de contenu Docker, vérification d'intégrité de fichiers

SHA-512

  • Sortie : 512 bits (128 caractères hexadécimaux)
  • Taille de bloc : 1024 bits (opère sur des mots de 64 bits)
  • Tours : 80 tours de compression
  • Sécurité : encore plus fort que SHA-256, avec une borne de collision d'environ 2^256 opérations
  • Performance : paradoxalement, SHA-512 est souvent plus rapide que SHA-256 sur les processeurs 64 bits, car son algorithme utilise naturellement des opérations 64 bits qui correspondent directement aux instructions CPU modernes
  • Utilisé dans : autorités de certification, applications gouvernementales/militaires, clés SSH, certaines implémentations de cryptomonnaies

SHA-384

SHA-384 est une version tronquée de SHA-512 : il utilise le même algorithme, mais avec des valeurs initiales différentes et une sortie de seulement 384 bits. Il offre un compromis entre les niveaux de sécurité de SHA-256 et SHA-512.

MD5 vs SHA-256 vs SHA-512 : comparaison complète

PropriétéMD5SHA-256SHA-512
Taille de sortie128 bits (32 hex)256 bits (64 hex)512 bits (128 hex)
Taille de bloc512 bits512 bits1024 bits
Taille de mot32 bits32 bits64 bits
Tours646480
Statut de sécuritéCassé (2004)SûrSûr
Résistance aux collisionsAucune (secondes)~2^128 opérations~2^256 opérations
Vitesse (logiciel)~650 MB/s~250 MB/s~350 MB/s*
Vitesse (matériel/ASIC)Extrêmement rapideRapide (ASICs Bitcoin)Modérée
Adapté à la sécuritéNonOuiOui
Adapté aux mots de passeNonNon (trop rapide)Non (trop rapide)

*SHA-512 est plus rapide que SHA-256 sur les CPU 64 bits grâce aux opérations natives sur mots de 64 bits.

Conclusion pratique : utilisez SHA-256 pour la sécurité générale (intégrité de fichiers, signatures numériques, HMAC). Utilisez SHA-512 lorsque vous avez besoin d'une sécurité maximale ou que vous travaillez sur des systèmes 64 bits où SHA-512 est réellement plus rapide. N'utilisez jamais MD5 pour la sécurité.

Hachage ou chiffrement : quelle différence ?

C'est l'une des confusions les plus fréquentes en cryptographie :

HachageChiffrement
DirectionSens unique (irréversible)Deux sens (réversible avec clé)
ObjectifVérifier l'intégrité et l'authenticitéProtéger la confidentialité
Clé requise ?Non (sauf HMAC)Oui (symétrique ou asymétrique)
Taille de sortieFixe (par exemple toujours 256 bits)Variable (proportionnelle à l'entrée)
Même entrée → même sortie ?ToujoursNon (avec IV/nonce correct)
ExemplesSHA-256, MD5, bcryptAES, RSA, ChaCha20

Le hachage sert lorsque vous devez vérifier que les données n'ont pas changé (sommes de contrôle de fichiers, vérification de mot de passe, signatures numériques) sans avoir besoin de récupérer les données originales.

Le chiffrement sert lorsque vous devez protéger les données afin que seules les parties autorisées puissent les lire (HTTPS, chiffrement de disque, messagerie).

On utilise souvent les deux ensemble : TLS utilise le chiffrement (AES) pour protéger les données en transit et le hachage (SHA-256 via HMAC) pour vérifier l'intégrité des données.

Hachage de mots de passe : pourquoi SHA-256 ne suffit pas

SHA-256 est une fonction de hachage sûre, mais elle n'est pas adaptée au hachage de mots de passe. La raison est contre-intuitive : SHA-256 est trop rapide. Un attaquant équipé d'un GPU peut calculer des milliards de hachages SHA-256 par seconde et essayer tous les mots de passe courants en quelques secondes.

Fonctions de hachage conçues pour les mots de passe

Le hachage moderne des mots de passe utilise des algorithmes spécialisés conçus pour être volontairement lents :

AlgorithmeAnnéeFonction cléRésistance
bcrypt1999Facteur de coût ajustable, basé sur BlowfishDifficile pour CPU
scrypt2009Difficile en mémoire (nécessite beaucoup de RAM)Difficile pour CPU + mémoire
Argon22015Vainqueur de la Password Hashing CompetitionDifficile pour CPU + mémoire + parallélisme

Argon2 (plus précisément Argon2id) est le standard actuellement recommandé pour les nouveaux systèmes. Il possède trois paramètres configurables :

  • Coût en temps : nombre d'itérations (plus = plus lent)
  • Coût en mémoire : quantité de RAM nécessaire (plus = plus difficile à paralléliser sur GPU)
  • Parallélisme : nombre de threads

Salage

Toutes les fonctions de hachage de mots de passe utilisent le salage : ajouter une valeur aléatoire unique à chaque mot de passe avant le hachage. Cela signifie :

  • Deux utilisateurs avec le même mot de passe obtiennent des hachages différents
  • Les tables arc-en-ciel précalculées deviennent inutiles
  • Les attaquants doivent casser chaque mot de passe individuellement

Le sel est stocké à côté du hachage (il n'a pas besoin d'être secret, seulement unique).

HMAC : authentification de message basée sur le hachage

HMAC (Hash-based Message Authentication Code) combine une fonction de hachage avec une clé secrète pour créer un code d'authentification. Définie dans RFC 2104, la construction HMAC est :

HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m))

Où H est la fonction de hachage, K est la clé (complétée à la taille de bloc), ipad est 0x36 répété et opad est 0x5c répété.

Pourquoi ne pas simplement hacher clé + message ?

Une approche naïve comme H(key || message) est vulnérable aux attaques par extension de longueur : un attaquant qui connaît H(key || message) peut calculer H(key || message || attacker_data) sans connaître la clé. La construction imbriquée de HMAC empêche cela.

HMAC en pratique

  • HMAC-SHA256 (HS256) : algorithme le plus courant pour signer les jetons JWT
  • AWS Signature V4 : utilise HMAC-SHA256 pour l'authentification des requêtes API
  • Webhooks Stripe : signés avec HMAC-SHA256 pour vérification
  • TLS 1.3 : utilise HMAC dans la fonction de dérivation de clé HKDF
  • OAuth 1.0 : signature des requêtes avec HMAC-SHA1

Vous pouvez générer des valeurs HMAC avec notre outil de génération de hachage via l'onglet HMAC : il prend en charge HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 et HMAC-SHA512.

Applications réelles des fonctions de hachage

Blockchain et cryptomonnaie

Le système de preuve de travail de Bitcoin repose sur SHA-256. Chaque en-tête de bloc est haché avec double-SHA-256 (SHA256(SHA256(header))), et les mineurs rivalisent pour trouver une entrée dont le hachage commence par un certain nombre de zéros. Ethereum utilise Keccak-256 (une variante de SHA-3). Tout le modèle de sécurité de la blockchain, registres immuables et vérification des transactions, dépend de la résistance aux collisions.

Certificats TLS/SSL

Lorsque vous visitez un site HTTPS, le certificat du serveur est signé à l'aide d'une fonction de hachage (généralement SHA-256). Votre navigateur vérifie le certificat en calculant le hachage et en le comparant à la signature. Toute la chaîne de certificats, de l'autorité racine au site web, dépend de la résistance aux collisions des hachages.

Contrôle de version Git

Git identifie chaque objet (commits, trees, blobs) par son hachage SHA-1. Lorsque vous exécutez git commit, Git calcule le hachage SHA-1 de l'objet commit, qui devient l'identifiant de commit. Git migre activement vers SHA-256 pour une sécurité plus forte, mais le système basé sur SHA-1 a fonctionné de manière fiable pendant près de deux décennies.

Signatures numériques

Les signatures numériques fonctionnent en hachant un document avec SHA-256, puis en chiffrant le hachage avec la clé privée du signataire. Le destinataire déchiffre la signature avec la clé publique du signataire et la compare à son propre hachage du document. Si les deux correspondent, le document est authentique et non modifié.

Stockage adressable par contenu

Des systèmes comme Docker, IPFS et les gestionnaires de paquets (npm, pip) utilisent des hachages SHA-256 comme adresses de contenu. Une couche d'image Docker est identifiée par le hachage SHA-256 de son contenu, ce qui garantit que le même contenu résout toujours vers le même identifiant et ne peut pas être altéré.

Subresource Integrity (SRI)

Les navigateurs web peuvent vérifier que les fichiers JavaScript et CSS hébergés sur CDN n'ont pas été altérés avec des hachages SRI. L'attribut integrity contient un hachage SHA-384 encodé en Base64 du contenu de fichier attendu :

<script src="https://cdn.example.com/lib.js"
  integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8w"
  crossorigin="anonymous"></script>

L'avenir : SHA-3 et au-delà

SHA-3 (Keccak) a été standardisé par le NIST en 2015 comme solution de secours au cas où SHA-2 serait cassé. Il utilise une structure interne complètement différente (la "construction éponge") par rapport à la construction Merkle-Damgard de SHA-2. Même si SHA-2 reste sûr et largement utilisé, SHA-3 apporte une défense en profondeur.

BLAKE3, publié en 2020, est une fonction de hachage plus récente, nettement plus rapide que SHA-256 (souvent 5 à 10 fois) tout en conservant de fortes propriétés de sécurité. Elle gagne en adoption dans les applications où la vitesse de hachage est critique, comme la vérification d'intégrité des fichiers et la déduplication.

Foire aux questions

Quelle est la différence entre hachage et chiffrement ?

Le hachage est à sens unique : vous ne pouvez pas récupérer l'entrée originale à partir d'un hachage. Le chiffrement fonctionne dans les deux sens : vous pouvez déchiffrer le texte chiffré en texte clair avec la bonne clé. Le hachage vérifie l'intégrité ; le chiffrement protège la confidentialité. Ils servent des objectifs différents et sont souvent utilisés ensemble dans des protocoles de sécurité comme TLS.

Un hachage peut-il être inversé ou "déchiffré" ?

Non. Un hachage ne peut pas être inversé, car de l'information est perdue pendant le processus de hachage (l'espace d'entrée est infini, mais l'espace de sortie est fixe). En revanche, les attaquants peuvent essayer de retrouver l'entrée en devinant (force brute) ou avec des tables précalculées (tables arc-en-ciel). C'est pourquoi les mots de passe doivent utiliser des fonctions de hachage lentes et salées comme bcrypt ou Argon2.

SHA-256 résiste-t-il aux ordinateurs quantiques ?

Partiellement. L'algorithme de Grover sur un ordinateur quantique pourrait réduire la recherche brute d'une préimage de 2^256 à 2^128 opérations, ce qui reste irréalisable. Pour la recherche de collisions, l'impact est moins significatif. Le consensus actuel est que SHA-256 fournit environ 128 bits de sécurité contre les attaques quantiques, ce qui est considéré comme suffisant dans un avenir prévisible.

Pourquoi Bitcoin utilise-t-il double-SHA-256 au lieu d'un seul SHA-256 ?

Bitcoin utilise SHA256(SHA256(x)) comme précaution contre les attaques par extension de longueur et pour ajouter une marge de sécurité. Lorsque Satoshi Nakamoto a conçu Bitcoin en 2008, les préoccupations concernant de potentielles faiblesses de SHA-256 seul (similaires à ce qui est arrivé à MD5 et SHA-1) ont motivé l'approche à double hachage. En pratique, SHA-256 seul reste sûr ; le double hachage est donc un choix de conception conservateur.

Quelle est la fonction de hachage la plus rapide qui reste sûre ?

BLAKE3 est actuellement la fonction de hachage cryptographique généraliste la plus rapide, atteignant souvent 5 à 10 fois le débit de SHA-256 grâce au parallélisme et aux instructions SIMD. Parmi les algorithmes standardisés, SHA-512 est plus rapide que SHA-256 sur les systèmes 64 bits. Pour une vitesse non cryptographique (lorsque la sécurité n'est pas nécessaire), xxHash et MurmurHash sont des ordres de grandeur plus rapides.

Combien de temps faudrait-il pour casser un hachage SHA-256 par force brute ?

Pour une entrée aléatoire de 256 bits, trouver une préimage demanderait environ 2^256 opérations, soit environ 1,16 x 10^77 essais. Même si chaque atome de l'univers observable (~10^80) était un ordinateur effectuant 10^18 hachages par seconde, il faudrait environ 3,7 x 10^41 ans. Les préimages SHA-256 sont, pour tous les usages pratiques, impossibles à trouver par force brute.

Conclusion

Les fonctions de hachage cryptographiques sont l'une des briques les plus fondamentales de la sécurité moderne. Comprendre les différences entre MD5 (cassé), SHA-1 (déprécié) et SHA-256/SHA-512 (standard actuel) vous aide à choisir en connaissance de cause dans vos applications. Retenez : SHA-256 pour la sécurité générale, bcrypt/Argon2 pour les mots de passe, HMAC pour l'authentification, et jamais MD5 pour la sécurité.

Essayez notre générateur de hachage en ligne gratuit pour calculer des hachages MD5, SHA-1, SHA-256, SHA-384, SHA-512 et des codes HMAC pour le texte et les fichiers : tout le traitement se fait dans votre navigateur.

À propos de cet article

Cet article fait partie de notre collection de guides Convertisseurs. Explorez les outils, exemples et workflows pratiques associés sur CaesarCipher.org.

Autres Tutoriels Convertisseurs

Essayez l'outil Convertisseurs

Mettez le guide en pratique avec des outils et exemples liés à convertisseurs.

Essayez l'outil Convertisseurs