Générateur de hash
Générez des hachages SHA-1, SHA-256, SHA-384 ou SHA-512 à partir de texte — calculés localement grâce à l'API Web Crypto.
Cette page a été traduite de l'anglais avec l'aide de l'IA, puis vérifiée par rapport à l'original. Lire la version anglaise
- Gratuit — Aucune inscription requise
- Instantané — Les résultats s'affichent au fur et à mesure
- Privé — Traité dans votre navigateur
Une fonction de hachage cryptographique réduit n’importe quelle entrée à une empreinte de longueur fixe : modifiez un seul octet et l’empreinte change du tout au tout, sans qu’il existe de moyen praticable de remonter de l’empreinte à l’entrée. Cet outil calcule les trois empreintes de la famille SHA-2 prises en charge par les navigateurs, ainsi que SHA-1 pour la compatibilité, en s’appuyant sur la Web Crypto API plutôt que sur une réimplémentation en JavaScript.
Comment ça marche
Saisissez ou collez un texte, choisissez un algorithme, et l’empreinte s’affiche en hexadécimal minuscule. Le texte est converti en octets UTF-8 avec TextEncoder, puis transmis à crypto.subtle.digest, l’implémentation native du navigateur. L’empreinte est recalculée à chaque frappe et rien n’est envoyé nulle part.
La longueur du résultat dépend uniquement de l’algorithme : SHA-1 produit 40 caractères hexadécimaux (160 bits), SHA-256 en produit 64, SHA-384 96 et SHA-512 128. Si un système en aval attend du Base64 plutôt que de l’hexadécimal, passez la valeur hexadécimale dans un convertisseur ou calculez l’empreinte avec un outil en ligne de commande qui propose ce format.
Quand une empreinte ne correspond pas à celle calculée ailleurs, deux détails sont souvent en cause. D’abord, l’entrée est hachée exactement telle qu’elle a été saisie : un saut de ligne final ou une espace égarée change le résultat, et la plupart des outils shell ajoutent un saut de ligne si on ne leur dit pas le contraire. Ensuite, les octets sont en UTF-8. Un fichier enregistré en UTF-16 ou en Latin-1 donne une autre empreinte, même s’il s’affiche à l’identique.
La Web Crypto API n’est exposée que sur les origines sécurisées, d’où l’obligation de passer par HTTPS. MD5 est absent, parce que les navigateurs ne l’implémentent pas et parce qu’il est impropre à tout usage de sécurité depuis de nombreuses années.
Reproduire le résultat ailleurs
Les mêmes empreintes sous Linux et macOS, avec printf plutôt que echo pour n’ajouter aucun saut de ligne :
printf '%s' 'hello world' | sha256sum
printf '%s' 'hello world' | openssl dgst -sha512
sha256sum affiche l’empreinte hexadécimale suivie d’un tiret pour l’entrée standard ; openssl dgst la préfixe du nom de l’algorithme. Dans les deux cas, le résultat doit correspondre à celui de l’outil, caractère pour caractère.
À quoi sert une empreinte
Les empreintes servent à vérifier l’intégrité. Une page de téléchargement publie le SHA-256 d’un installeur pour que vous puissiez vérifier que le fichier reçu est bien celui que l’éditeur a produit. Git identifie les commits en hachant leur contenu. Les caches adressés par contenu utilisent l’empreinte d’un fichier comme clé, si bien que les fichiers identiques ne sont stockés qu’une fois. Une empreinte incluse dans un message signé prouve que le corps n’a pas été modifié après la signature.
Ce n’est pas du chiffrement. Il n’y a ni clé ni rien à déchiffrer ; quiconque dispose de la même entrée obtient la même sortie. Publier le SHA-256 d’un secret ne le protège en rien s’il peut être deviné, car un attaquant n’a qu’à hacher des candidats jusqu’à trouver une correspondance.
C’est pourquoi un simple SHA-256 est le mauvais outil pour stocker des mots de passe. Le hachage de mots de passe exige une fonction volontairement lente et salée, comme Argon2id, scrypt ou bcrypt, afin qu’il devienne impraticable de tester des millions de candidats par seconde. Servez-vous de ce générateur pour vérifier les sommes de contrôle de fichiers et déboguer des intégrations, pas pour bâtir un système d’authentification.
Choisir un algorithme
SHA-256 est le choix par défaut raisonnable, et celui qu’utilisent aujourd’hui la plupart des protocoles, des certificats et des fichiers de sommes de contrôle. SHA-512 est un peu plus rapide sur du matériel 64 bits et produit une empreinte plus longue ; SHA-384 en est une variante tronquée qui écarte les problèmes d’extension de longueur. Des collisions SHA-1 ont été démontrées en pratique : ne l’utilisez que lorsqu’un système ancien l’impose, comme les identifiants d’objets Git historiques.
Si vous devez authentifier un message avec un secret partagé plutôt que d’en calculer simplement l’empreinte, il vous faut un HMAC, qui combine une fonction de hachage et une clé. C’est une autre opération de la Web Crypto API, et elle n’est pas proposée ici.
Pour aller plus loin
Hachage, chiffrement et signature sont trois primitives distinctes, souvent confondues ; les fondamentaux de la sécurité de l’information expliquent ce que chacune garantit et où chacune a sa place. Pour voir une signature fondée sur une fonction de hachage à l’œuvre, décodez un jeton avec le décodeur JWT et lisez sécuriser des API REST avec JWT, qui montre comment les signatures HS256 et RS256 de ces jetons sont produites et vérifiées.
FAQ
- Quel algorithme de hachage devrais-je utiliser ?
- SHA-256 constitue un bon choix par défaut pour un usage général. SHA-1 est considéré comme cryptographiquement compromis et ne devrait pas être utilisé à des fins de sécurité, même s'il reste parfois nécessaire pour la compatibilité avec d'anciens systèmes.
- Pourquoi MD5 n'est-il pas pris en charge ?
- MD5 n'est pas disponible dans l'API Web Crypto intégrée du navigateur et est également cryptographiquement compromis — SHA-256 ou plus fort est recommandé à la place.
- Mon texte est-il envoyé quelque part ?
- Non. Le hachage s'effectue entièrement dans votre navigateur grâce à crypto.subtle.digest.