Les lignes d’empreinte ont la forme « ALGORITHME hachage » afin de pouvoir les copier dans des notes de version ou des manifestes de téléchargement.
Générateur de hachage — chaque algorithme expliqué depuis zéro
En une phrase : une fonction de hachage cryptographique est un mixeur à sens unique — elle prend un nombre quelconque d’octets et le comprime en une empreinte de longueur fixe, de sorte que la même entrée donne toujours la même empreinte, sans que l’empreinte permette de reconstruire l’entrée. Cette page fait tourner onze d’entre elles entièrement dans l’onglet de votre navigateur.
Chaque algorithme ci-dessous est expliqué en quatre mêmes étapes : ce que c’est, en mots simples ; l’intuition de son fonctionnement sans aucune formule ; s’il faut encore l’utiliser aujourd’hui ; et les erreurs que l’on commet le plus souvent avec lui.
MD5
Ce que c’est. MD5 (1992) compresse n’importe quelle entrée en une empreinte de 128 bits (32 caractères hexadécimaux). Il a été conçu pour être rapide sur les ordinateurs des années 1990 — et il l’est toujours, ce qui explique précisément qu’il soit encore partout : pages de téléchargement logiciel, caches de déduplication de fichiers, clés de bases héritées.
Son fonctionnement, intuitivement. L’entrée est découpée en blocs de 64 octets. Chaque bloc est remué dans un état glissant de 128 bits quatre fois de suite (quatre tours de mélange légèrement différents), et après le dernier bloc l’état est affiché comme empreinte. Le brassage est construit à partir d’additions, de rotations et de consultations de tables — peu coûteux hier, peu coûteux aujourd’hui.
Faut-il l’utiliser ? Pour des sommes de contrôle lorsque personne ne cherche à vous tromper — détecter un téléchargement corrompu, repérer des fichiers en double — oui, il signale parfaitement la corruption. Pour tout ce qui est adversarial, non : depuis 2004, des chercheurs fabriquent en quelques secondes deux fichiers différents ayant le même MD5, et de véritables falsifications de certificats fondées sur des collisions MD5 ont eu lieu en 2008. Traitez-le comme un numéro de série, non comme un verrou.
Erreurs courantes. Utiliser MD5 pour des mots de passe (bien trop rapide — voir le Générateur de hachage de mots de passe pour ce qui convient à ce cas) ; faire confiance à un fichier parce que « le MD5 correspond », alors que l’attaquant a aussi publié le MD5 ; et coller la ligne entière MD5 (fichier) = hachage au lieu du seul hachage — la case Vérifier ci-dessus accepte les deux.
SHA-1
Ce que c’est. SHA-1 (1995, NSA) produit une empreinte de 160 bits (40 caractères hexadécimaux). Pendant vingt ans, il a été le hachage d’intégrité par défaut de Git, des certificats TLS et des signatures PGP.
Son fonctionnement, intuitivement. Même recette de famille que MD5, mais avec un état de 160 bits, 80 tours de mélange par bloc de 64 octets, et un ensemble d’opérations plus large. Les tours supplémentaires devaient rendre le mixeur plus difficile à rétro-ingénierer.
Faut-il l’utiliser ? Non, pour tout usage adversarial. La cassure théorique est devenue pratique en 2017, lorsque Google a produit deux PDF différents ayant la même empreinte SHA-1 (l’attaque SHAttered, environ 6 500 années-CPU). Git stocke encore ses objets sous SHA-1, mais ne le traite plus que comme un identifiant, et a depuis ajouté la détection de collisions. Pour du travail neuf, utilisez SHA-256 ou SHA-3.
Erreurs courantes. Croire que 160 bits « suffisent encore » — la faille porte sur la structure interne, non sur la force brute ; et confondre RIPEMD-160 avec SHA-1 parce que les deux font 40 caractères hexadécimaux (la case d’identification ci-dessus les distingue).
SHA-2 : SHA-256, SHA-384 et SHA-512
Ce que c’est. La famille SHA-2 (2001, NSA) est le cheval de trait de la vérification d’intégrité moderne. SHA-256 donne 256 bits (64 caractères hexadécimaux), SHA-512 donne 512 bits, et SHA-384 est SHA-512 dont le résultat est tronqué à 384 bits — utile lorsqu’un protocole impose une étiquette plus courte.
Son fonctionnement, intuitivement. Des blocs de 64 octets (ou 128 octets pour les variantes 512 bits) sont repliés dans un état de 8 mots à travers 64 (ou 80) tours d’étapes ajouter-tourner-mélanger. Contrairement à MD5, le calendrier commence par étirer chaque bloc dans un tampon développé — c’est ce qui a neutralisé le type d’attaque qui a cassé MD5 et SHA-1. Une curiosité à connaître : sur les processeurs 64 bits, SHA-512 est plus rapide que SHA-256, car il traite deux fois plus de données par tour grâce à l’arithmétique 64 bits.
Faut-il l’utiliser ? Oui — SHA-256 est aujourd’hui la réponse par défaut pour les sommes de contrôle de fichiers, la signature de code et les empreintes de certificats, sans faille pratique connue après deux décennies d’analyse. Utilisez SHA-384/512 lorsque vous voulez davantage de marge ou lorsque la plateforme les exécute plus vite.
Erreurs courantes. Utiliser SHA-256 seul pour des mots de passe — c’est une fonction de hachage rapide, et la vitesse est l’ennemie ici (utilisez bcrypt, scrypt ou Argon2id) ; et confondre la longueur de l’empreinte avec la solidité, pour des contextes de résistance aux collisions adversariales — la longueur ne fixe que le plafond.
SHA-3 (SHA3-256 / SHA3-512) et Keccak-256
Ce que c’est. SHA-3 (2015, normalisé à partir de la soumission Keccak par Bertoni, Daemen, Peeters et Van Assche) est la troisième norme de hachage du NIST. Il ne partage rien avec les composants internes de SHA-2 — il a été choisi précisément pour être une sauvegarde indépendante au cas où SHA-2 tomberait.
Son fonctionnement, intuitivement. Au lieu de brasser des blocs dans un petit état, Keccak « absorbe puis restitue » à répétition : l’entrée est absorbée bit à bit dans une éponge de 5×5×64 bits, toute l’éponge est brouillée par une permutation fixe (24 tours d’opérations bit à bit sur l’ensemble de l’état), puis les bits de l’empreinte sont exprimés. L’image de l’éponge est toute l’idée : les bits de capacité ne sont jamais restitués, et ce sont eux qui rendent la fonction à sens unique.
Keccak-256 contre SHA3-256. Ils ne diffèrent que par un octet de bourrage. La soumission originale de l’équipe Keccak bourrait le dernier bloc avec 0x01 ; le NIST a modifié le bourrage normalisé en 0x06 (séparation de domaine, usage de Keccak à l’époque de SHA-2). Ethereum a adopté le bourrage d’origine, si bien que son « keccak256 » diffère du SHA3-256 standard pour chaque entrée. Cette page propose les deux, cochés séparément.
Faut-il l’utiliser ? Oui — soit comme choix principal lorsque la politique impose un algorithme autre que SHA-2, soit partout où l’écosystème le parle déjà. Erreurs courantes : supposer que SHA3-256 et Keccak-256 sont interchangeables (ce n’est pas le cas — comparez les deux lignes que cette page produit pour la même entrée) ; et supposer que « SHA-3 » remplace SHA-2 — les deux sont sûrs, et SHA-2 reste le plus largement déployé.
RIPEMD-160
Ce que c’est. RIPEMD-160 (1996, le consortium européen RIPE d’universitaires, renforcé par Dobbertin, Bosselaers et Preneel) produit 160 bits. C’est une conception entièrement européenne, volontairement indépendante de la famille SHA conçue par la NSA.
Son fonctionnement, intuitivement. Chaque bloc de 64 octets est traité par deux lignes parallèles de 80 tours avec des constantes et des amplitudes de rotation différentes ; à la fin, les deux lignes et l’ancien état sont combinés. La structure à deux voies était la réponse des concepteurs aux attaques différentielles qui cassaient les autres hachages des années 1990.
Faut-il l’utiliser ? En pratique, il survit surtout au sein d’autres systèmes : les adresses Bitcoin hachent leurs clés publiques avec RIPEMD-160(SHA-256(clé)), les anciennes clés OpenPGP le proposent comme option de hachage, et c’est le hachage traditionnel des pièces BitTorrent v1 aux côtés du SHA-1. Il ne subit aucune attaque de collision pratique, mais sa taille de 160 bits lui donne la marge de sécurité la plus étroite de cette page. Pour un usage autonome neuf, préférez SHA-256 ou SHA-3.
Erreurs courantes. Croire que les deux lignes parallèles le rendent « deux fois plus solide » — c’est la taille de la sortie qui limite la résistance aux collisions ; et le confondre avec SHA-1 (même longueur de 40 caractères hexadécimaux ; la case d’identification ci-dessus liste les deux possibilités côte à côte).
BLAKE2b-512 et BLAKE2s-256
Ce que c’est. BLAKE2 (2013, Aumasson, Neves, Wilcox-O’Hearn et Winnerlein) est une fonction de hachage conçue pour la vitesse logicielle — BLAKE2b vise les plateformes 64 bits avec une sortie allant jusqu’à 512 bits, BLAKE2s vise les plateformes 32 bits avec une sortie allant jusqu’à 256 bits.
Son fonctionnement, intuitivement. Il descend du finaliste SHA-3 BLAKE, dont le cœur est une permutation à clé empruntée au chiffrement par flot ChaCha : une matrice 4×4 de mots est brouillée par une alternance d’étapes de mélange en colonnes et en diagonales — comme mélanger une grille d’abord de haut en bas, puis le long des diagonales — pendant 12 tours (BLAKE2b) ou 10 tours (BLAKE2s) par bloc. Comme ces étapes se traduisent très bien en instructions de processeur, BLAKE2 est souvent plus rapide que MD5 tout en offrant une sécurité comparable à SHA-3.
Faut-il l’utiliser ? Oui — c’est une conception entièrement moderne et non cassée, populaire dans les logiciels sensibles aux performances (intégrité des paquets dans certains écosystèmes, stockage adressé par contenu, déduplication de sauvegardes) et comme MAC rapide. Sur cette page, BLAKE2b-512 donne les empreintes les plus longues et BLAKE2s-256 l’option moderne compacte.
Erreurs courantes. Penser que « plus rapide signifie forcément plus faible » — BLAKE2 est plus rapide par conception, et non en rognant sur la sécurité ; et ignorer que BLAKE2 accepte aussi une clé (ce qui en fait un MAC) ou une chaîne de personnalisation — cette page l’utilise toujours en mode non clé.
Lire les cases Vérifier et Identifier
Vérifier. La case de vérification normalise ce que vous collez — majuscules ou minuscules, deux-points tous les deux chiffres, préfixe sha256=, enveloppe de style BSD SHA256 (fichier) = hachage, ligne md5sum de GNU avec le nom de fichier après le hachage, \r\n parasites — puis recalcule chaque algorithme coché sur votre entrée actuelle (texte ou fichier choisi) et signale chaque algorithme qui correspond. Une correspondance en vert signifie « ces octets sont exactement ce que l’éditeur a haché » ; en rouge, aucun des algorithmes cochés ne l’a produit — essayez d’en cocher davantage, ou vérifiez si le collage n’a pas été tronqué.
Identifier. La case d’identification ne calcule aucun hachage ; elle lit la forme de la chaîne. La longueur réduit les candidats : 32 caractères hexadécimaux peuvent être du MD5, 40 du SHA-1 ou du RIPEMD-160, 64 du SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256, 96 du SHA-384, 128 du SHA-512 / SHA3-512 / BLAKE2b-512. Les préfixes révèlent les hachages de mots de passe ($2a$/$2b$/$2y$ bcrypt, $argon2id$, $scrypt$, $6$ sha512crypt, $1$ MD5-crypt) — ce sont une autre espèce (voir le Générateur de hachage de mots de passe), et cette page ne les calcule volontairement pas. Une chaîne contenant +, / et = dont la longueur est un multiple de 4 ressemble davantage à des données encodées en Base64 qu’à une empreinte hexadécimale ; l’outil la décode et indique la longueur en octets qui lui correspondrait.
Ce que l’identification peut et ne peut pas vous dire. La longueur et le jeu de caractères sont des empreintes du format, pas une preuve de l’algorithme : deux chaînes de 64 caractères hexadécimaux peuvent provenir du SHA-256 ou d’un SHA-512 tronqué. L’identifiant classe les possibilités ; la case Vérifier est celle qui prouve quel algorithme correspond réellement à vos octets.
Les onze d’un coup d’œil
| Algorithme |
Empreinte |
Conçu |
Empreinte de « The quick brown fox jumps over the lazy dog » |
| MD5 | 128 bits | 1992 | 9e107d9d372bb6826bd81d3542a419d6 |
| SHA-1 | 160 bits | 1995 | 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 |
| SHA-256 | 256 bits | 2001 | d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592 |
| SHA-384 | 384 bits | 2001 | ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1 |
| SHA-512 | 512 bits | 2001 | 07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6 |
| SHA3-256 | 256 bits | 2015 | 69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04 |
| SHA3-512 | 512 bits | 2015 | 01dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450 |
| Keccak-256 | 256 bits | antérieur à 2015 | 4d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15 |
| RIPEMD-160 | 160 bits | 1996 | 37f332f68db77bd9d7edd4969571ad671cf9dd3b |
| BLAKE2b-512 | 512 bits | 2013 | a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918 |
| BLAKE2s-256 | 256 bits | 2013 | 606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812 |
Chaque empreinte du tableau ci-dessus est produite par les moteurs de cette même page — cochez tous les algorithmes, cliquez sur Exemple et comparez. Les lignes SHA-3, Keccak, RIPEMD-160 et BLAKE2 proviennent du noyau auto-hébergé crypto-shared.js utilisé par les outils cryptographiques de ce site.
FAQ
Quelle case faire confiance pour un téléchargement ? La case Vérifier, avec SHA-256 coché — la plupart des éditeurs signent aujourd’hui en SHA-256 ou SHA-512. La case Identifier se contente de nommer des candidats ; elle ne prouve jamais rien sur votre fichier.
Pourquoi Keccak-256 figure-t-il dans la liste ? Parce qu’Ethereum, Swarm et quelques systèmes de registre ont adopté le bourrage antérieur à la norme. Si vous vérifiez un keccak256 d’Ethereum, vous devez utiliser cette ligne, et non SHA3-256.
Deux entrées différentes peuvent-elles partager une empreinte ? En théorie, oui — une infinité d’entrées se projettent dans un ensemble fini d’empreintes (principe des tiroirs). En pratique, trouver une telle paire avant la fin de l’univers est précisément ce que signifie la « résistance aux collisions », et chaque algorithme ci-dessus, à l’exception de MD5 et SHA-1, tient toujours.
Les hachages sont-ils du chiffrement ? Non. Le chiffrement est réversible avec une clé ; un hachage est un mixeur à sens unique. Rien sur cette page ne peut être « déchiffré » pour retrouver votre texte — et c’est une fonctionnalité, pas une limitation.