En informatique, une fonction de hachage est une fonction qui associe, à une donnée de taille non bornée, une donnée de taille fixe. On dit que l'on « hache » une donnée.
Les valeurs renvoyées par une fonction de hachage sont appelées valeurs de hachage, codes de hachage, signatures ou simplement hachages. Ces valeurs sont parfois utilisés comme indices dans une table de taille fixe, appelée table de hachage, où on retrouvera les attributs stockés pour les éléments « hachés ».
Des fonctions de hachage sont utilisées dans des applications de stockage et d'indexation et permettent d'accéder rapidement aux attributs de données hétérogènes (de tailles variables et non bornées). De fait, l'accès aux attributs des données se fait en temps quasi-constant. Grâce au hachage, l'espace de stockage est à peine plus grand que l'espace requis pour les attributs des données, mis bout à bout, tout en proposant un accès très rapide. Ainsi, le hachage est un dispositif d'accès aux attributs des données, efficace en termes de calcul et d'espace.
Ce qui rend le hachage vraiment intéressant, ce sont ses excellentes propriétés statistiques. En effet, alors que son comportement dans le pire cas est mauvais, mais ne se manifeste qu'avec une probabilité extrêmement faible, voire négligeable, son comportement moyen est optimal.
Voici une liste de concepts avec lesquels les fonctions de hachage partagent des méthodes, mais avec lesquelles elles ne doivent pas être confondues ; ce sont les sommes de contrôle, les clés de contrôle, les empreintes numériques, la compression avec perte, les générateurs de nombres aléatoires, les codes correcteur et les chiffrements.