Vous pouvez utiliser des fonctions de hachage pour encoder des données et transformer ainsi l'entrée en "code haché" ou "valeur hachée". L'algorithme de hachage est conçu de manière à réduire les risques d'obtenir, pour deux entrées, un hachage identique (appelé collision).
Les fonctions de hachage permettent d'accélérer l'extraction d'enregistrements de données (recherches unidirectionnelles), ou d'effectuer des opérations de validation de données (total de contrôle) et de cryptographie. Pour la recherche, le code haché est utilisé comme un index dans une table de hachage, qui contient un pointeur vers l'enregistrement de données. Pour le total de contrôle, un calcul est effectué sur les données du code haché avant le stockage ou la transmission, puis effectué à nouveau après cette opération afin de vérifier l'intégrité des données ; si les codes hachés ne correspondent pas, cela signifie que les données sont corrompues. Les fonctions de hachage cryptographique sont utilisées dans le cadre de la sécurité des données.
Quelques exemples d'utilisation des fonctions de hachage :
- Détection des enregistrements en double. Les enregistrements en double étant hachés dans le même compartiment de la table de hachage, la tâche consiste à analyser les compartiments qui contiennent plus de deux enregistrements, méthode plus rapide que de trier et de comparer tous les enregistrements du fichier. (La même technique permet de rechercher des enregistrements similaires, car des clés similaires hachent dans des compartiments contigus ; la recherche peut alors être limitée à ces compartiments.)
- Localisation de points proches les uns des autres. L'application d'une fonction de hachage à des données spatiales permet de partitionner l'espace modelé dans une grille ; comme dans l'exemple précédent, le temps d'extraction ou de comparaison est fortement réduit, car la recherche porte seulement sur les cellules contiguës de la grille. Cette technique fonctionne pour d'autres types de données spatiales telles que des formes et des images.
- Vérification de l'intégrité de messages. Le hachage de résumés de messages est effectué avant et après la transmission ; les deux valeurs de hachage sont alors comparées pour déterminer si le message est corrompu.
- Vérification de mots de passe. Au cours d'une authentification, les justificatifs d'identité pour l'ouverture de session d'un utilisateur sont hachés, et cette valeur est comparée au mot de passe haché stocké pour cet utilisateur.