Fonction de hachage

Définition, exemples et bonnes pratiques

À retenir

  • Unidirectionnel : On ne peut pas retrouver le document d'origine à partir de son empreinte (c'est une fonction « à sens unique »).
  • Déterministe : La même donnée produira toujours exactement la même empreinte.
  • Taille fixe : Que le fichier pèse 1 Mo ou 10 Go, son empreinte aura toujours la même longueur.

Une fonction de hachage est un algorithme qui transforme n'importe quelle donnée (un texte, une image, un fichier complet) en une courte chaîne de caractères de taille fixe, appelée empreinte numérique. C'est un peu comme le code-barres ou l'empreinte digitale d'un fichier : si vous modifiez ne serait-ce qu'une virgule dans le document d'origine, l'empreinte générée sera totalement différente.

Étymologie

Le terme vient de l'anglais hash, qui signifie « hacher » ou « mélanger » (comme dans le plat de viande hachée). En informatique, cela évoque l'idée de découper et mélanger les données d'entrée pour produire un condensé unique. Le concept est apparu dans les années 1950 pour optimiser le stockage des données.

Exemples d'usage

  • Stockage des mots de passe : Un site web ne stocke jamais votre mot de passe en clair, mais seulement son hachage (ex: SHA-256).
  • Vérification de téléchargement : Comparer l'empreinte d'un fichier téléchargé avec celle fournie par l'auteur pour s'assurer qu'il n'est pas corrompu.
  • Git : Le logiciel de gestion de version utilise des hachages pour identifier chaque modification apportée à un code source.

Cas d'usage

On utilise le hachage principalement dans la cybersécurité pour protéger l'accès aux comptes, dans le développement web pour accélérer la recherche d'informations (tables de hachage), et dans la blockchain pour sécuriser les transactions.

Bonnes pratiques

Pour la sécurité, il faut impérativement bannir les anciens algorithmes comme MD5 ou SHA-1, devenus trop fragiles. Il est recommandé d'ajouter un « sel » (donnée aléatoire) avant de hacher un mot de passe pour le protéger contre les attaques par dictionnaire.

Synonymes

empreinte numérique condensé hash

Antonymes

chiffrement réversible

Conseil

Si vous débutez en programmation, ne tentez jamais de créer votre propre fonction de hachage pour la sécurité. Utilisez toujours les bibliothèques standards et reconnues par la communauté (comme Argon2 ou SHA-256).

Questions fréquentes

Peut-on retrouver un mot de passe à partir d'un hachage ?

Théoriquement non, car l'opération est conçue pour être irréversible. Cependant, des pirates utilisent des listes de hachages pré-calculés pour les mots de passe simples.

Qu'est-ce qu'une collision ?

C'est quand deux fichiers différents produisent par malchance la même empreinte. Un bon algorithme de hachage rend ce risque quasi nul.