Les pubs vous déplaisent ? Aller Sans pub Auj.

MD5, SHA-256, SHA-3 Quel algorithme de hachage avez-vous vraiment besoin ?

Publié le

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.

MD5, SHA-256, SHA-3 : Quel algorithme de hachage avez-vous vraiment besoin ? 1
ANNONCE · Supprimer ?

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.

Envie d'une expérience sans pub ? Passez à la version sans pub

Installez nos extensions

Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide

Sur Extension Chrome Sur Extension de bord Sur Extension Firefox Sur Extension de l'opéra

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 !

ANNONCE · Supprimer ?
ANNONCE · Supprimer ?
ANNONCE · Supprimer ?

Coin des nouvelles avec points forts techniques

Impliquez-vous

Aidez-nous à continuer à fournir des outils gratuits et précieux

Offre-moi un café
ANNONCE · Supprimer ?