MD5 ou SHA-256 ?

Quel algorithme de hachage utiliser, concrètement.

La réponse courte

Utilisez SHA-256, sauf raison précise de faire autrement. MD5 est plus rapide et plus court, mais il est cassé depuis 2004 : il ne permet donc pas de savoir si un fichier a été modifié intentionnellement. MD5 reste adapté à une seule tâche : détecter une corruption accidentelle, comme un téléchargement tronqué ou une copie défectueuse.

Comparaison

MD5 SHA-256
Longueur d'empreinte 128 bits (32 caractères) 256 bits (64 caractères)
Publication 1991 2001
Famille MD SHA-2
Résistance aux collisions Cassée (2004) Intacte
Protège contre l'altération Non Oui
Détecte une corruption accidentelle Oui Oui
Vitesse relative Plus rapide Plus lent, rarement limitant
Utilisé par les certificats TLS Plus depuis longtemps Oui
Recommandé aujourd'hui Hors sécurité uniquement Oui, choix par défaut

Ce que « MD5 est cassé » signifie

Cela ne veut pas dire que MD5 a cessé de fonctionner, ni que quiconque peut reconstituer votre fichier à partir de l'empreinte. Cela signifie qu'un attaquant peut fabriquer deux fichiers différents partageant la même empreinte MD5. C'est précisément cette propriété dont dépend toute vérification de sécurité.

Si une page de téléchargement publie un MD5 et qu'un attaquant contrôle le fichier, il peut vous servir un fichier malveillant dont le MD5 correspond quand même. Avec SHA-256, ce n'est pas possible en l'état actuel des connaissances. En revanche, si vous vérifiez simplement qu'un fichier copié sur un réseau instable est arrivé intact, aucun attaquant n'est impliqué et MD5 suffit.

Lequel choisir

SHA-256 quand

  • Vous vérifiez un téléchargement contre la somme d'un éditeur
  • L'enjeu est sécuritaire ou juridique
  • Piste d'audit, preuve, conformité
  • Vous ne savez pas lequel choisir

MD5 convient encore quand

  • Vous détectez une corruption après copie
  • Vous cherchez des doublons sur un disque
  • L'autre partie ne publie que du MD5
  • Clés de cache et empreintes internes
COMPARER_SUR_VOTRE_FICHIER

[1] SÉLECTIONNER FICHIER(S) À HACHER

Sélectionnez un ou plusieurs fichiers à hacher depuis votre système, ou glissez-déposez les fichiers ci-dessous

[2] CHOISISSEZ VOTRE FONCTION DE HACHAGE

[3] LANCER LE PROCESSUS DE HACHAGE

Questions fréquentes

SHA-256 est-il meilleur que MD5 ?

Pour la sécurité, oui, sans réserve. SHA-256 ne subit aucune attaque pratique par collision alors que MD5 en subit depuis 2004. Pour détecter une simple corruption accidentelle, les deux fonctionnent et MD5 est plus rapide.

Pourquoi MD5 est-il encore partout ?

Par inertie et par rapidité. MD5 est intégré à des décennies d'outillage, produit une chaîne courte de 32 caractères et reste réellement adapté aux vérifications d'intégrité sans adversaire.

Deux fichiers peuvent-ils avoir le même SHA-256 ?

Mathématiquement de telles collisions existent forcément, puisqu'une entrée de longueur quelconque est réduite à 256 bits. Mais personne n'en a jamais trouvé et aucune technique connue ne rend la recherche réalisable. En pratique, une correspondance SHA-256 signifie que les fichiers sont identiques.