Qu'est-ce qu'une fonction de hachage ? MD5, SHA et hachage cryptographique
Une fonction de hachage est un algorithme mathématique qui transforme n'importe quelle entrée en une chaîne de caractères de longueur fixe. Les fonctions de hachage sont irréversibles par conception — on ne peut pas retrouver les données originales, ce qui les rend fondamentales pour la cybersécurité moderne.
Qu'est-ce qu'une fonction de hachage ?
Une fonction de hachage prend une entrée de n'importe quelle taille — un seul caractère, un paragraphe ou un fichier entier — et produit une sortie de longueur fixe appelée hash ou empreinte. Quelle que soit la taille de l'entrée, la sortie a toujours la même longueur pour un algorithme donné. Par exemple, MD5 produit toujours 32 caractères hexadécimaux, tandis que SHA-256 en produit toujours 64.
Propriétés clés des fonctions de hachage
Les bonnes fonctions de hachage cryptographique partagent ces propriétés essentielles :
- Déterministe : La même entrée produit toujours le même hash.
- Calcul rapide : Le hash peut être calculé rapidement quelle que soit la taille de l'entrée.
- Résistance à la pré-image : À partir d'un hash, il est pratiquement impossible de retrouver l'entrée originale.
- Petits changements, grandes différences : Modifier ne serait-ce qu'un bit de l'entrée produit un hash complètement différent (effet d'avalanche).
- Résistance aux collisions : Il est extrêmement difficile de trouver deux entrées différentes produisant le même hash.
Algorithmes de hachage courants
MD5
Développé en 1991, MD5 produit un hash de 128 bits (32 caractères hexadécimaux). Autrefois très utilisé pour la vérification de fichiers, il est aujourd'hui considéré comme cassé pour les usages de sécurité — des chercheurs peuvent générer des collisions en quelques secondes. Il reste utile pour des sommes de contrôle non sécurisées.
Famille SHA
La famille Secure Hash Algorithm, conçue par la NSA :
- SHA-1 : Produit des hash de 160 bits. Obsolète pour la sécurité depuis 2017, quand Google a démontré une attaque par collision pratique.
- SHA-256 : Partie de SHA-2, produit des hash de 256 bits. Actuellement le standard pour la plupart des applications de sécurité, y compris les certificats SSL et la blockchain.
- SHA-384 et SHA-512 : Variantes plus longues de SHA-2 pour des exigences de sécurité plus élevées.
- SHA-3 : Un algorithme plus récent avec une structure interne différente, servant de secours si SHA-2 venait à être compromis.
Autres algorithmes
- bcrypt : Conçu spécifiquement pour le hachage de mots de passe, avec sel intégré et facteur de travail ajustable.
- Argon2 : Le gagnant moderne du Password Hashing Competition, résistant aux attaques par GPU.
Applications concrètes
- Stockage de mots de passe : Les sites web stockent les empreintes de mots de passe, pas le texte en clair. Lors de la connexion, votre mot de passe est haché et comparé à l'empreinte stockée.
- Vérification d'intégrité de fichiers : Les sites de téléchargement publient des valeurs de hash pour vérifier que les fichiers n'ont pas été corrompus ou modifiés.
- Signatures numériques : Les hash sont au cœur des algorithmes de signature numérique utilisés pour la signature de code et la vérification de documents.
- Blockchain : Chaque bloc contient le hash du bloc précédent, créant une chaîne immuable.
- Déduplication de données : Les systèmes de stockage utilisent les hash pour identifier les blocs de données en double.
Questions fréquentes
Un hash peut-il être inversé pour retrouver les données originales ?
Non. Les fonctions de hachage sont conçues pour être irréversibles. À partir d'un hash, retrouver l'entrée originale est pratiquement impossible pour les algorithmes forts comme SHA-256. C'est ce qu'on appelle la résistance à la pré-image.
MD5 est-il encore sûr à utiliser ?
Pas pour des usages de sécurité. Les collisions MD5 peuvent être générées en quelques secondes sur du matériel moderne. Il reste acceptable pour des sommes de contrôle non sécurisées et la déduplication, mais jamais pour les mots de passe ou signatures numériques.
Quelle est la différence entre hachage et chiffrement ?
Le chiffrement est réversible — les données peuvent être déchiffrées avec la bonne clé. Le hachage est irréversible — les données originales ne peuvent pas être retrouvées à partir du hash. Le chiffrement protège la confidentialité ; le hachage vérifie l'intégrité.
Guides associés
- Qu'est-ce que l'encodage Base64 ? Fonctionnement et cas d'utilisation
- Qu'est-ce que le JSON ? Guide complet sur la notation JavaScript
- Qu'est-ce que l'encodage URL ? Guide sur le percent-encoding
- Qu'est-ce qu'un UUID ? Comprendre les identifiants universellement uniques
- Qu'est-ce que le XML ? Guide complet sur le langage de balisage extensible
Dernière mise à jour le 2026-09-27