MD5, SHA-256, SHA-3 Quel algorithme de hachage avez-vous vraiment besoin ?
Une comparaison directe de MD5, SHA-1, SHA-256, SHA-3 et BLAKE3 — dans quelles situations chaque algorithme est approprié, où ils échouent, et lequel utiliser par défaut.
Si vous continuez à utiliser par défaut MD5, vous êtes dans une bonne compagnie — mais vous faites probablement une mauvaise décision. Les fonctions de hachage produisent tous un empreinte de taille fixe de vos données, mais elles ne sont pas interchangeables. Choisir le mauvais algorithme correspond soit à un surcroît inutile, soit à une véritable faille de sécurité, selon la direction dans laquelle vous vous trompez.
Voici ce que chaque algorithme fait réellement, où il échoue, et ce que vous devriez utiliser à la place.
Ce qu'une fonction de hachage fait
Une fonction de hachage cryptographique prend une entrée de taille quelconque et retourne une sortie de taille fixe — déterministe, unidirectionnelle et (idéalement) résistante aux collisions. La même entrée produit toujours le même hachage. Il est impossible de l'inverser. Et modifier même un seul octet dans l'entrée modifie complètement la sortie.
Ces trois propriétés rendent les fonctions de hachage utiles pour vérifier l'intégrité des données, signer des documents et construire des sommes de contrôle. Les algorithmes ci-dessous réalisent cela. Ce qui les distingue est la manière dont ils résistent aux attaques et leur vitesse de traitement.
MD5 : Arrêtez de l'utiliser pour la sécurité
MD5 produit un hachage de 128 bits et fonctionne rapidement — ce qui est exactement le problème. Il a été conçu en 1991, et en 2004, des chercheurs ont démontré des attaques de collisions. Aujourd'hui, la génération de deux fichiers différents produisant le même hachage MD5 est devenue triviallement calculable.
Où il échoue : Tout contexte de sécurité — vérification de l'intégrité des fichiers sur des canaux non fiables, signatures numériques, certificats TLS.
Où il est encore acceptable : Des sommes de contrôle non liées à la sécurité. La déduplication de fichiers, la génération de clés de cache, l'empreinte de contenu dans un système que vous contrôlez — MD5 est rapide et suffisant. Les collisions n'ont du sens que si un attaquant peut les exploiter.
Besoin de générer un hachage MD5 rapidement ? Utilisez le Générateur MD5.
SHA-1 : Déprécié, toujours présent
SHA-1 produit une sortie de 160 bits et a le même problème fondamental : des attaques de collisions sont prouvées. L'attaque SHAttered de Google en 2017 a produit deux fichiers PDF différents avec des hachages SHA-1 identiques, au coût maintenant accessible pour des attaquants motivés.
Il est officiellement déprécié pour les signatures numériques et les certificats TLS. Vous le trouverez encore dans Git, où il est utilisé comme identifiant de contenu — le modèle de menace est différent, et Git s'engage actuellement à migrer vers SHA-256.
La règle : Ne pas utiliser SHA-1 pour de nouvelles tâches sensibles à la sécurité. Le signaler à la migration dans les systèmes hérités.
SHA-256 et SHA-512 : Le standard actuel
SHA-256 (partie de la famille SHA-2) est ce que vous devriez utiliser par défaut pour la plupart des applications cryptographiques. Sortie de 256 bits, aucune attaque pratique connue, supportée sur tous les langages et plateformes que vous êtes probablement amenés à utiliser.
SHA-512 utilise un état interne de 512 bits et produit une sortie de 512 bits. Sur des processeurs de 64 bits, il est souvent plus rapide que SHA-256 pour des entrées importantes en raison de la manière dont il traite les blocs. Pour la plupart des tâches au niveau de l'application, SHA-256 est suffisant. Si vous effectuez un traitement de données à haute performance ou que vous avez besoin d'une marge supplémentaire dans la dérivation des clés, testez SHA-512.
À utiliser dans les cas suivants : Vérification de l'intégrité des fichiers, HMAC, signature de certificats (avec RSA/ECDSA), signatures des requêtes API, jetons JWT.
SHA-3 : Architecture différente, cas d'usage spécialisés
SHA-3 (Keccak) a été sélectionné par NIST en 2015 comme une alternative structurelle à SHA-2. Alors que SHA-2 utilise la construction Merkle-Damgård, SHA-3 utilise une construction à puits. Si une faiblesse fondamentale était jamais découverte dans la conception de SHA-2, SHA-3 serait indépendant.
Il produit les mêmes tailles de sortie (SHA3-256, SHA3-512, etc.) et passe toutes les analyses de sécurité actuelles, mais est généralement plus lent que SHA-256 en logiciel.
À utiliser dans les cas suivants : Dans des systèmes cryptographiques à long terme où l'indépendance architecturale par rapport à SHA-2 est importante — modules de sécurité embarqués, certains contextes gouvernementaux ou de conformité, ou n'importe où où vous souhaitez faire face à des faiblesses futures de SHA-2. Pour la plupart des applications web, c'est un surcroît théorique.
BLAKE3 : Le choix moderne en termes de performance
BLAKE3 n'est pas encore une norme NIST, mais il a une forte adoption : Rust's cargo, le format de hachage Bao, et une liste croissante d'outils de sécurité et de stockage l'utilisent. Conçu pour la parallélisation, il fonctionne significativement plus vite que SHA-256 en logiciel tout en restant solide face aux analyses cryptographiques actuelles.
À utiliser dans les cas suivants : Des sommes de contrôle à haute performance, adressage de contenu, n'importe où où vous contrôlez les deux extrémités et où la vitesse est nécessaire sans compromettre la sécurité. Évitez-le dans les cas où SHA-2 est explicitement requis par la spécification — certificats X.509, jetons JWT et contextes similaires.
Comparaison des algorithmes de hachage
| Algorithme | État de sécurité | Taille de sortie | Vitesse (logiciel) | Cas d'usage |
|---|---|---|---|---|
| MD5 | Brisé (collisions) | 128 bits | Très rapide | Sommes de contrôle non liées à la sécurité, déduplication |
| SHA-1 | Brisé (collisions) | 160 bits | Rapide | Utilisation uniquement dans les systèmes hérités ; identifiants de contenu dans Git |
| SHA-256 | Sécurisé | 256 bits | Rapide | Usage général — choix par défaut |
| SHA-512 | Sécurisé | 512 bits | Plus rapide sur 64 bits pour de grands volumes de données | Haute performance ou marge supplémentaire |
| SHA-3 | Sécurisé | 224 à 512 bits | Plus lent en logiciel | Systèmes à long terme nécessitant une indépendance par rapport à SHA-2 |
| BLAKE3 | Sécurisé | 256 bits | Très rapide (parallèle) | Adressage de contenu à haute performance |
Calcul de SHA-256
Trois méthodes rapides pour calculer un hachage SHA-256 :
Python :
import hashlib
data = b"hello world"
digest = hashlib.sha256(data).hexdigest()
print(digest)
# Output: b94d27b9934d3e08a52e52d7da7dabfac484efe04294e576fba1d63e8d4d0b4b
Node.js :
const { createHash } = require('crypto');
const digest = createHash('sha256')
.update('hello world')
.digest('hex');
console.log(digest);
Bash :
echo -n "hello world" | sha256sum
Besoin de hacher quelque chose rapidement sans écrire de code ? Le Générateur de hachage soutient MD5, SHA-1, SHA-256, SHA-512 et plus encore — directement depuis votre navigateur.
Guide de décision
| Cas d'usage | À utiliser |
|---|---|
| Déduplication / clés de cache | MD5 ou SHA-256 |
| Vérification de l'intégrité du fichier (canal fiable) | MD5 est acceptable |
| Vérification de l'intégrité du fichier (téléchargements, canal non fiable) | SHA-256 |
| Signatures numériques | SHA-256 ou SHA-512 |
| HMACs et authentification API | SHA-256 |
| Certificats TLS | SHA-256 |
| Stockage de mots de passe | bcrypt, Argon2, ou scrypt — pas l'un des autres |
| Adressage de contenu à haute performance | BLAKE3 |
| Conformité aux normes | SHA-256 (vérifiez les exigences spécifiques) |
Un point à formuler clairement : aucun de ces algorithmes ne doit être utilisé directement pour hacher les mots de passe. Ils sont tous conçus pour être rapides, ce qui les rend utiles aux attaques par force brute. Utilisez bcrypt, Argon2id ou scrypt — des algorithmes conçus pour être lents et mémoire-intensifs, exactement parce que le piratage des mots de passe est un jeu adversaire.
La réponse courte
Pour le nouveau code : SHA-256 par défaut. Utilisez SHA-512 si vous avez besoin d'une taille de sortie plus grande ou que vous hachiez des flux importants sur des processeurs de 64 bits. Utilisez BLAKE3 lorsque vous avez besoin de débit élevé et que vous contrôlez les deux extrémités. Utilisez SHA-3 uniquement si vous avez une raison architecturale spécifique pour rester indépendant de SHA-2.
MD5 est acceptable pour l'empreinte interne et la déduplication dans des cas où les collisions ne constituent pas une menace de sécurité. Il n'est pas acceptable pour tout ce qui peut être exploité par un attaquant pour forger un match.
Dans le doute, SHA-256. C'est la bonne réponse depuis une décennie et le restera dans les années à venir.
Vous aimerez peut-être aussi
Installez nos extensions
Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide
恵 Le Tableau de Bord Est Arrivé !
Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !
Outils essentiels
Tout voir Nouveautés
Tout voirMise à jour: Notre dernier outil a été ajouté le 20 avr. 2026
