Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Fonction de hachage cryptographique

Une fonction de hachage est une fonction qui prend une entrée de longueur variable et produit une sortie de longueur fixe, aussi appelée empreinte (ou simplement « hachage »). Les fonctions de hachage doivent être rapides à calculer, et des entrées différentes doivent autant que possible produire des sorties différentes (c'est ce qu'on appelle la résistance aux collisions).

Les fonctions de hachage ont des usages à la fois cryptographiques et non cryptographiques. En dehors de la cryptographie, par exemple, les fonctions de hachage peuvent servir à générer les clés d'un tableau associatif comme une map ou un dictionnaire.

La fonction digest() de l'interface SubtleCrypto met différentes fonctions de hachage à disposition des applications web.

Fonctions de hachage cryptographiques

En cryptographie, les fonctions de hachage ont de nombreuses applications, notamment les signatures numériques et les codes d'authentification de message.

Toutes les fonctions de hachage ne conviennent pas à la cryptographie. Pour être utilisée en cryptographie, une fonction de hachage doit être :

  • rapide à calculer
  • à sens unique : connaissant la sortie, il doit être impossible ou irréaliste de retrouver l'entrée d'origine
  • résistante à la falsification : toute modification de l'entrée conduit à une sortie différente
  • résistante aux collisions : il doit être irréaliste de trouver deux entrées différentes produisant la même sortie

Les fonctions de hachage les plus couramment utilisées en cryptographie appartiennent à la famille SHA-2 (Secure Hash Algorithm 2), dont les noms sont "SHA-" suivis de la longueur de l'empreinte en bits : par exemple, "SHA-256" et "SHA-512".

SHA-2 est le successeur de l'algorithme SHA-1, qui n'est plus considéré comme sûr et ne doit plus être utilisé en cryptographie. Notez que l'algorithme MD5 est également considéré comme non sécurisé.

Voir aussi