Dev Tools

Générateur de Hash SHA

Calculez le hash cryptographique de votre texte en SHA-1, SHA-256, SHA-384 et SHA-512.

Questions fréquentes

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

Une fonction de hachage cryptographique transforme une donnée de taille quelconque en une empreinte de taille fixe (le hash). Elle est à sens unique : il est impossible de retrouver le texte original à partir du hash.

La moindre modification du texte source produit un hash complètement différent (effet avalanche).

Quelle est la différence entre SHA-1, SHA-256, SHA-384 et SHA-512 ?

Ces algorithmes font partie de la famille SHA (Secure Hash Algorithm). SHA-1 produit un hash de 160 bits (40 hex), aujourd'hui considéré comme obsolète pour la sécurité.

SHA-256 produit 256 bits (64 hex) et est le standard actuel. SHA-384 et SHA-512 produisent respectivement 384 et 512 bits pour une sécurité maximale.

Pourquoi MD5 n'est-il pas disponible dans les navigateurs modernes ?

MD5 n'est pas implémenté dans l'API Web Crypto des navigateurs car il est considéré comme cryptographiquement cassé depuis 2004. Des collisions peuvent être générées délibérément.

MD5 reste utilisé pour vérifier l'intégrité de fichiers (checksums) mais ne doit jamais être utilisé pour hacher des mots de passe ou des données sensibles.

Puis-je utiliser SHA-256 pour hacher des mots de passe ?

Non. SHA-256 est trop rapide pour hacher des mots de passe : un attaquant peut tester des milliards de combinaisons par seconde. Pour les mots de passe, utilisez des algorithmes spécialement conçus : bcrypt, scrypt, Argon2 ou PBKDF2.

Ces algorithmes sont intentionnellement lents et résistants aux attaques par force brute.

À quoi servent les hashes SHA en pratique ?

Les hashes SHA servent à vérifier l'intégrité de fichiers téléchargés, signer numériquement des documents, identifier des commits Git (SHA-1), générer des empreintes de certificats SSL, créer des tokens HMAC pour les APIs, et dans les protocoles de signature comme ECDSA ou RSA-PSS.

Hash generator MD5 SHA : comprendre le hachage cryptographique

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

Une fonction de hachage cryptographique transforme une donnée de taille arbitraire en une empreinte de taille fixe, appelée hash ou condensé. Cette transformation est à sens unique : il est computationnellement impossible de retrouver le message original à partir du hash. La moindre modification de l'entrée, même un seul bit, produit un hash complètement différent. On appelle cette propriété l'effet avalanche.

Les fonctions de hachage sont au coeur de la sécurité informatique moderne. Elles servent à vérifier l'intégrité des fichiers, signer numériquement des documents, identifier des commits dans Git, et protéger les mots de passe stockés en base de données. Chaque algorithme produit un hash de longueur spécifique, mesurée en bits.

Un bon algorithme de hachage garantit trois propriétés : résistance à la pré-image (impossible de retrouver l'entrée), résistance à la seconde pré-image (impossible de trouver une autre entrée produisant le même hash) et résistance aux collisions (impossible de trouver deux entrées distinctes avec le même hash).

SHA-256 vs MD5 vs bcrypt : quel algorithme choisir ?

Le choix de l'algorithme dépend entièrement du cas d'usage. Les trois catégories principales sont les fonctions de hachage rapides (SHA, MD5), les fonctions de hachage lentes (bcrypt, Argon2) et les fonctions obsolètes à éviter.

Longueur de hash et niveau de sécurité par algorithme

MD5
128 bits Cassé
SHA-1
160 bits Obsolète
SHA-256
256 bits Standard
SHA-384
384 bits Robuste
SHA-512
512 bits Maximum

Source : NIST FIPS PUB 180-4 et OWASP Password Storage Cheat Sheet

MD5 (128 bits) est cryptographiquement cassé depuis 2004 : des collisions peuvent être générées en quelques secondes. Il reste utilisable uniquement pour des checksums non sécuritaires (vérification rapide de fichiers). SHA-1 (160 bits) est également considéré comme obsolète depuis 2017, lorsque Google et le CWI Amsterdam ont démontré une collision pratique (attaque SHAttered). SHA-256 est le standard actuel recommandé par le NIST pour la plupart des usages.

Checksum (intégrité)

SHA-256

Rapide, vérifie qu'un fichier n'a pas été altéré

Mot de passe

bcrypt / Argon2

Volontairement lent, résiste au brute force

Ne jamais utiliser SHA-256 pour les mots de passe

SHA-256 est trop rapide : un GPU moderne peut tester des milliards de combinaisons par seconde. Pour le stockage de mots de passe, utilisez bcrypt, scrypt ou Argon2, qui intègrent un facteur de coût (work factor) rendant chaque tentative volontairement lente.

Vérification d'intégrité : le cas des checksums

Lorsque vous téléchargez un fichier depuis Internet, comment vous assurer qu'il n'a pas été corrompu ou altéré ? Le fournisseur publie le hash SHA-256 du fichier original. Après téléchargement, vous calculez le hash du fichier reçu et le comparez à la valeur attendue. Si les deux correspondent, le fichier est intact.

1
Télécharger le fichier

Le serveur fournit le fichier + son hash SHA-256

ubuntu-24.04-desktop-amd64.iso
2
Calculer le hash local

sha256sum ubuntu-24.04-desktop-amd64.iso

a1b2c3d4e5f6...
3
Comparer les empreintes

Hash local = hash publié ? Fichier intègre.

OK ou MISMATCH

2²⁵⁶

Nombre de hashs SHA-256 possibles, soit environ 1,16 × 10⁷⁷ combinaisons

HMAC et signatures numériques

Les fonctions SHA sont également utilisées dans les protocoles d'authentification de messages. Un HMAC (Hash-based Message Authentication Code) combine un hash SHA avec une clé secrète pour garantir simultanément l'intégrité et l'authenticité d'un message. HMAC-SHA256 est le standard pour la signature de requêtes API (webhooks, JWT, OAuth). Pour vérifier l'encodage de vos URLs d'API, utilisez notre encodeur/décodeur URL.

L'effet avalanche illustré

L'une des propriétés fondamentales d'une bonne fonction de hachage est l'effet avalanche : un changement minimal dans l'entrée provoque un changement radical dans le hash de sortie. Par exemple, le hash SHA-256 de "hello" et "Hello" (une seule lettre en majuscule) produisent deux empreintes complètement différentes, sans aucun pattern reconnaissable. C'est cette propriété qui empêche un attaquant de déduire des informations sur l'entrée à partir du hash.

Bonne pratique

Lorsque vous stockez des hashs pour vérification, stockez toujours en hexadécimal minuscule (lowercase hex) pour garantir la cohérence des comparaisons. Utilisez une comparaison en temps constant (crypto.timingSafeEqual en Node.js) pour prévenir les attaques par timing.

Erreurs fréquentes à éviter

  • Utiliser MD5 ou SHA-1 pour la sécurité. Ces algorithmes sont cassés. Pour l'intégrité de fichiers, préférez SHA-256. Pour les signatures, utilisez SHA-256 minimum.
  • Hasher un mot de passe directement avec SHA-256. Un attaquant peut tester des milliards de combinaisons par seconde. Utilisez bcrypt, scrypt ou Argon2 avec un salt unique par utilisateur.
  • Confondre chiffrement et hachage. Le hachage est irréversible par conception. Si vous avez besoin de récupérer la donnée originale, vous avez besoin de chiffrement (AES, RSA), pas de hachage.
  • Oublier le salt pour les mots de passe. Sans salt, deux utilisateurs avec le même mot de passe auront le même hash, rendant les rainbow tables efficaces. Un salt aléatoire unique par utilisateur élimine ce risque.
  • Comparer les hashs en mode non constant-time. Une comparaison caractère par caractère peut révéler la longueur du préfixe correct via une attaque par timing. Utilisez toujours une comparaison en temps constant.

Sources et références

Dev & Tech

Sources : FIPS PUB 180-4 (NIST, 2015) · OWASP · MDN Web Docs · Dernière mise à jour : avril 2026.