Générateur de Hachage
Supporte les algorithmes de hachage MD5, SHA-1, SHA-256, SHA-384, SHA-512
Qu'est-ce qu'un hachage ?
Un hachage (Hash) est un algorithme qui mappe des données de longueur arbitraire à un condensé de longueur fixe. La même entrée produit toujours la même sortie, tandis qu'un infime changement dans l'entrée produit une sortie complètement différente. Il est impossible de revenir d'une valeur de hachage aux données d'origine. Les algorithmes de hachage courants incluent MD5, SHA-1, SHA-256, SHA-384, SHA-512, largement utilisés pour la vérification d'intégrité des données, le stockage de mots de passe et les signatures numériques. Les fonctions de hash doivent être comprises selon l’objectif: contrôle d’intégrité, identification rapide ou sécurité. MD5 et SHA-1 apparaissent encore dans d’anciens checksums, mais sont faibles pour des décisions de confiance modernes; SHA-256 ou mieux est généralement préféré. Un hash n’est pas un chiffrement: il ne se déchiffre pas, mais des entrées faibles ou prévisibles peuvent être retrouvées par dictionnaire ou attaques précalculées.
Comment utiliser
Comment utiliser
- Sélectionnez le mode d'entrée : saisie de texte ou téléchargement de fichier
- Saisissez le texte ou glissez-déposez un fichier
- Cochez les algorithmes de hachage à générer (sélection multiple)
- Cliquez sur le bouton 'Générer le hachage' pour lancer le calcul
- Cliquez sur 'Copier' pour enregistrer un hachage individuel, ou sur 'Tout copier' pour tous les résultats
Notes sur le hachage
- Les valeurs de hachage sont des empreintes déterministes : modifier un seul octet de l'entrée produit un résultat différent.
- Utilisez SHA-256 ou un algorithme plus robuste pour les vérifications d'intégrité sensibles, et évitez MD5/SHA-1 dans tout nouveau flux sécurisé.
Cas d’utilisation
Principe technique
Une fonction de hachage cryptographique transforme une entrée de longueur arbitraire en un condensé de longueur fixe, avec trois propriétés de sécurité : la résistance à la préimage (difficile à inverser), la résistance à la seconde préimage (difficile de trouver une autre entrée avec le même condensé) et la résistance aux collisions (difficile de trouver deux entrées quelconques avec le même condensé). MD5 (Rivest 1991, RFC 1321), SHA-1 (NIST FIPS 180-1, 1995) et la famille SHA-2 (FIPS 180-4, 2012) sont tous des constructions Merkle-Damgård : l'entrée est rembourrée jusqu'à un multiple de la taille de bloc, puis itérée à travers une fonction de compression unidirectionnelle. La taille de bloc est de 512 bits pour MD5, SHA-1, SHA-256 et 1024 bits pour SHA-512. Tailles des condensés : 128 / 160 / 256 / 384 / 512 bits respectivement. MD5 (Rivest 1991) est un hash de 128 bits, 64 tours d'un quart-tour avec quatre mots de chaînage de 32 bits (A, B, C, D), des constantes dérivées de la fonction sinus (sans signification de sécurité, uniquement pour briser la symétrie). Attaques par collision : Wang et al. 2004 ont réduit la recherche de collision MD5 à 2⁴⁰ évaluations de hash (chemins différentiels calculés à la main) ; Stevens 2009 a écrit un outil de collision à préfixe choisi ; le malware Flame en 2012 a utilisé une attaque novatrice à préfixe choisi pour contrefaire un certificat de signature de code Microsoft, marquant la première utilisation connue d'une collision MD5 en conditions réelles. Aujourd'hui, une collision MD5 coûte moins d'un dollar sur CPU et quelques millisecondes sur GPU. Utilisez SHA-256 pour tout nouveau protocole. SHA-1 (FIPS 180-1, déprécié par le NIST en 2011 après FIPS 180-4) est un hash de 160 bits avec 80 tours et cinq mots de chaînage de 32 bits. L'attaque SHAttered (Stevens et al., février 2017) a produit la première collision SHA-1 pratique, coûtant environ 6 500 années-CPU et 110 années-GPU. D'ici 2020, les collisions à préfixe choisi étaient réalisables pour environ 45 000 $ de temps GPU, et d'ici 2025 le coût de collision sur matériel courant est bien inférieur à 10 000 $. Git a migré de SHA-1 à SHA-256 en 2020 ; les certificats HTTPS n'ont plus été autorisés à utiliser SHA-1 depuis 2017. La sortie de collision à préfixe choisi SHAttered ('SHAttered.pdf' et 'SHAttered2.pdf') est le vecteur de test standard : leurs condensés SHA-1 sont identiques mais les contenus diffèrent. SHA-2 (FIPS 180-4, 2012) couvre six hash : les successeurs de SHA-1 que sont SHA-224, SHA-256, SHA-384, SHA-512 plus deux variantes tronquées SHA-512/256 et SHA-512/224. En interne, SHA-256 utilise six fonctions logiques (Ch, Maj, Σ0, Σ1, σ0, σ1) avec 64 constantes de tour K[t] = ⌊∛(32 premiers bits de la partie fractionnaire du t-ième nombre premier)⌋ — la construction de la racine cubique d'un nombre premier est purement esthétique, sans rôle de sécurité. SHA-256 est le cheval de bataille depuis environ 2010 et est le standard de facto pour TLS 1.3 (RFC 8446), la preuve de travail de Bitcoin (jusqu'aux discussions de transition en 2025) et la plupart des stockages adressés par contenu. SHA-512/256 est plus rapide sur matériel 64 bits car il utilise des mots de 64 bits et exécute la compression de SHA-512, puis tronque. SHA-3 (FIPS 202, 2014) et Keccak (la soumission originale) utilisent une structure fondamentalement différente : la construction en éponge Keccak-f[1600] avec un état de 1600 bits, alternant des phases d'absorption et d'extraction. SHA-3 a les mêmes tailles de condensé que SHA-2 mais résiste à l'attaque par extension de longueur qui affecte les hash Merkle-Damgård — une propriété utile pour les MAC à préfixe secret. BLAKE2 (RFC 7693) est plus rapide que SHA-256 en logiciel et est utilisé par WireGuard, Argon2 et plusieurs protocoles modernes. Cette page exécute SHA-1, SHA-256, SHA-384 et SHA-512 dans le navigateur via SubtleCrypto.digest (qui appelle le code natif de la plateforme — OpenSSL/BoringSSL sur Chromium, NSS sur Firefox, l'équivalent sur Safari), et se rabat sur une implémentation MD5 en JavaScript pur car SubtleCrypto n'expose pas MD5 (selon l'API W3C Web Crypto, MD5 est en statut 'recommend-only'). Pour un fichier de 10 Mo, SHA-256 dans V8 s'exécute à environ 400 Mo/s sur un ordinateur portable moderne, tandis que le MD5 en JS pur s'exécute à environ 100-150 Mo/s — la famille SHA de Web Crypto est 3 à 4 fois plus rapide que toute implémentation JS pure, ce pourquoi la page achemine SHA-1 et au-dessus via l'interface native.
- MD5 (Rivest 1991, RFC 1321) : condensé de 128 bits, bloc de 512 bits, 64 tours, Merkle-Damgård. Vulnérable aux collisions depuis Wang 2004 (2⁴⁰ opérations) et aux collisions à préfixe choisi depuis Flame 2012 — à ne jamais utiliser pour du nouveau code, mais acceptable pour les checksums non sécurisés, ETags, empreintes de contenu ou clés de cache.
- SHA-1 (FIPS 180-1, 1995 ; déprécié par FIPS 180-4, 2011) : condensé de 160 bits. La collision SHAttered (Stevens et al., fév. 2017) a coûté environ 6 500 années-CPU ; les collisions à préfixe choisi coûtent désormais moins de 10 000 $. Git a migré vers SHA-256 en 2020 ; le CA/Browser Forum a interdit SHA-1 dans les certificats HTTPS en 2017.
- SHA-256 (FIPS 180-4) : condensé de 256 bits, 64 tours de Ch/Maj/Σ0/Σ1/σ0/σ1, 64 constantes de tour K[t] dérivées de ∛(premier) parties fractionnaires. Cheval de bataille pour TLS 1.3 (RFC 8446), la plupart des stockages adressés par contenu et le minage Bitcoin. Le niveau de sécurité de 256 bits offre environ 128 bits de résistance aux collisions.
- SHA-384/SHA-512 (FIPS 180-4) : SHA-512 utilise des mots de 64 bits, 80 tours, bloc de 1024 bits. Environ 1,5 à 2 fois plus rapide que SHA-256 sur matériel 64 bits. SHA-384 est simplement SHA-512 tronqué à 384 bits ; SHA-512/256 est SHA-512 tronqué à 256 bits et offre une meilleure résistance à l'extension de longueur que SHA-256.
- SHA-3 (FIPS 202, 2014) / Keccak : construction en éponge avec permutation Keccak-f[1600], débits de 1088/832/576 bits pour SHA3-256/384/512. Résiste aux attaques par extension de longueur qui affectent les hash Merkle-Damgård — utile pour les MAC à préfixe secret.
- BLAKE2 (RFC 7693) et BLAKE3 sont des hash modernes rapides ; BLAKE2s est typique pour la dérivation de clé MAC, BLAKE2b est utilisé par WireGuard et de nombreux protocoles, et BLAKE3 ajoute un arbre de Merkle pour le hachage parallèle. Non disponible dans Web Crypto en 2025, cette page ne les expose donc pas.
- API Web Crypto (W3C) : SubtleCrypto.digest('SHA-256', data) retourne un Promise<ArrayBuffer> calculé par le code natif de la plateforme. Environ 400 Mo/s sur V8 pour SHA-256, environ 100-150 Mo/s pour le MD5 en JS pur — l'écart de 3 à 4× explique pourquoi la page achemine SHA-1 et au-dessus via SubtleCrypto.
- Mise en garde sur l'extension de longueur : H(secret || message) est falsifiable pour tout hash Merkle-Damgård (MD5, SHA-1, SHA-2) si l'attaquant connaît le condensé et la longueur du message. HMAC (RFC 2104) et SHA-3 évitent ce problème. Pour les MAC, utilisez HMAC-SHA-256 ou KMAC ; pour les hash d'entrées non fiables, le condensé brut suffit.
Exemples
Vecteur de test FIPS 180-2 : chaîne vide et 'abc'
Entrée: '' (vide, 0 octet)
MD5: d41d8cd98f00b204e9800998ecf8427e (32 caractères hex)
SHA-1: da39a3ee5e6b4b0d3255bfef95601890afd80709 (40 caractères hex)
SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (64 caractères hex)
SHA-512: cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
Entrée: 'abc' (3 octets, le vecteur de test FIPS canonique)
MD5: 900150983cd24fb0d6963f7d28e17f72
SHA-1: a9993e364706816aba3e25717850c26c9cd0d89d
SHA-256: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
SHA-512: ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
La longueur de chaque sortie est fixée par l'algorithme (MD5 128 bits, SHA-1 160 bits,
SHA-256 256 bits, SHA-512 512 bits), quelle que soit la longueur d'entrée.Vecteur de test FIPS 180-2 56 octets (multi-blocs)
Entrée: 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq' (56 octets)
SHA-256: 248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
SHA-512: 8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018
50d1c9ef3504cabb287a00833cf81a7e (128 caractères hex - les 64 premiers affichés,
le condensé fait 64 octets / 1024 bits)
Ce vecteur de 56 octets s'étend sur deux blocs SHA-256 de 512 bits et exerce
le calendrier des messages (expansion sigma_0 / sigma_1 des mots 16..63).
C'est l'entrée de référence NIST CAVP pour SHA-256, et la manière canonique
de confirmer que la boucle du calendrier des messages est correctement implémentée.
Si cela correspond, le remplissage des blocs, l'ajout de longueur et l'ajout d'état
final fonctionnent tous. SHA-512 utilise la même structure Merkle-Damgard sur
une taille de mot 64 bits et un calendrier à 80 étapes, donc la même entrée
de 56 octets produit un condensé de 128 caractères hex.Effet d'avalanche et piège d'encodage
Entrée: '' (vide) MD5: d41d8cd98f00b204e9800998ecf8427e
Entrée: 'a' (un octet) MD5: 0cc175b9c0f1b6a831c399e269772661
L'ajout d'un seul octet modifie chaque bit de sortie - c'est la propriété
d'avalanche. Il en va de même pour la casse (a -> A change 0x61 en 0x41, un bit
à la position 0x20) et pour les espaces de fin. Notez aussi que le même
texte visible avec et sans '\n' final ou un BOM UTF-8
(0xEF 0xBB 0xBF) produit un condensé différent, c'est pourquoi correspondre
à une somme de contrôle publiée nécessite de correspondre à la séquence d'octets
exacte, pas aux caractères visibles. Les navigateurs et Node passent les chaînes
par TextEncoder d'abord pour rendre les octets d'entrée déterministes ; un MD5 JS
qui prend une chaîne directement produit des hachages incorrects pour des entrées non-ASCII.Vérification de l'intégrité d'un fichier avec sha256sum
$ sha256sum ubuntu-24.04-desktop-amd64.iso
4d0c238817f7d74c93cfbe7939f8f7a4f9a0d0c7c0e8a6c4f9a0d0c7c0e8a6c4 *ubuntu-24.04-desktop-amd64.iso
1. Déposez le même .iso en mode fichier sur cette page et choisissez SHA-256.
2. Copiez le condensé de 64 caractères dans le champ de comparaison.
3. Si les condensés correspondent, le téléchargement est identique octet pour octet à celui de l'éditeur.
Une non-correspondance signifie que le fichier est corrompu, partiellement téléchargé, ou une
version différente de celle du manifeste.
Pour le même fichier, MD5 et SHA-1 donnent respectivement un condensé de 32 et 40 caractères ;
SHA-256 et SHA-512 donnent 64 et 128 caractères. Assurez-vous que la somme de contrôle de l'éditeur
utilise le même algorithme avant la comparaison.FAQ
Quels algorithmes cet outil prend-il en charge ?
Typiquement MD5, SHA-1, SHA-256, SHA-384, SHA-512, et parfois SHA-3 / RIPEMD-160. SHA-256 est le choix moderne standard ; MD5 et SHA-1 ne devraient être utilisés que pour des sommes de contrôle non liées à la sécurité.
Le hachage est-il la même chose que le chiffrement ?
Non. Le hachage est à sens unique — étant donné le hachage, il n'existe pas d'algorithme pour récupérer l'entrée d'origine (à part la force brute sur un petit espace d'entrée). Le chiffrement est réversible avec une clé. Utilisez le hachage pour les empreintes et les contrôles d'intégrité, le chiffrement pour la confidentialité.
Où l'entrée est-elle hachée ?
Tout le hachage s'exécute dans votre navigateur via l'API Web Crypto ou des implémentations en JS pur. Rien n'est envoyé à un serveur. Vous pouvez le confirmer en regardant l'onglet Réseau pendant que vous collez l'entrée.
Pourquoi la même entrée produit-elle un hachage différent sur un autre site ?
Les différences viennent généralement du prétraitement de l'entrée : fins de ligne (CRLF vs LF), espaces en fin de ligne, encodage de caractères (UTF-8 vs UTF-16), ou un outil qui ajoute automatiquement un saut de ligne. Les algorithmes de hachage eux-mêmes sont déterministes entre les implémentations.
Puis-je inverser un hachage ?
Mathématiquement non. En pratique, des entrées courtes issues d'un petit ensemble (mots de passe courants, mots du dictionnaire, nombres courts) peuvent être recherchées dans des tables arc-en-ciel pré-calculées. Pour tout ce qui est sensible, c'est tout l'intérêt du salage et de l'utilisation d'un hachage lent comme bcrypt ou Argon2 — cet outil ne les remplace pas.
Dois-je hacher des mots de passe avec cet outil ?
Non. SHA-256 seul est bien trop rapide pour le stockage de mots de passe. Utilisez bcrypt, scrypt ou Argon2 avec un sel par utilisateur et un facteur de travail ajusté. Les hachages de la famille SHA conviennent pour l'intégrité des fichiers, l'adressage par contenu et les entrées de signature — pas pour les mots de passe.
Pourquoi les hachages ont-ils des longueurs différentes ?
Chaque algorithme a une taille de digest fixe : MD5 fait 128 bits (32 caractères hex), SHA-1 fait 160 bits (40 caractères hex), SHA-256 fait 256 bits (64 caractères hex), SHA-512 fait 512 bits (128 caractères hex). Plus c'est long, plus c'est résistant aux collisions, mais le hachage lui-même prend plus de place.