Le hashing (ou hachage en français) est un processus cryptographique qui consiste à transformer une entrée (comme un mot de passe, un fichier ou des données) en une chaîne de caractères de longueur fixe, appelée valeur de hachage ou empreinte. Cette transformation est effectuée par une fonction de hachage, qui est un algorithme mathématique.
Les caractéristiques principales du hashing incluent :
-
Taille fixe : Quelle que soit la taille de l’entrée, la sortie (la valeur de hachage) a toujours une longueur fixe. Par exemple, un mot de passe de 8 caractères ou un fichier volumineux peuvent tous deux produire une empreinte de 256 bits dans le cas de SHA-256.
-
Unique et déterministe : Le hashing est déterministe, c’est-à-dire que pour une même entrée, la fonction de hachage génère toujours la même empreinte. Cependant, même un petit changement dans l’entrée entraînera une empreinte totalement différente.
-
Irreversibilité : Une fonction de hachage est conçue pour être à sens unique, c’est-à-dire qu’il est pratiquement impossible de retrouver l’entrée initiale à partir de la valeur de hachage (c’est ce qui la différencie du chiffrement, qui est réversible).
-
Rapidité : Les fonctions de hachage sont conçues pour être rapides à calculer.
Le hashing est largement utilisé pour diverses applications :
- Sécurité des mots de passe : Les mots de passe sont souvent hachés avant d’être stockés afin que l’original ne soit pas directement accessible.
- Intégrité des données : Le hashing permet de vérifier si des données ont été modifiées en comparant l’empreinte d’origine à celle des données après transmission ou stockage.
- Blockchain : Dans des technologies comme la blockchain, les fonctions de hachage jouent un rôle clé pour garantir la sécurité et l’intégrité des transactions.
Les algorithmes de hachage courants incluent MD5, SHA-1, SHA-256, et bcrypt (souvent utilisé pour le hachage de mots de passe).