Une histoire de hash Hash

Un hash (qui peut également être appelé un condensat ou une signature) est une valeur calculée à partir d’une autre valeur. Dans la grande majorité des cas, cette valeur est représentée sous forme d’une chaîne de caractères hexadécimaux. Le calcul du hash fait appel à un algorithme complexe que ce livre ne détaillera pas.

Voici deux exemples de hash calculés avec l’algorithme SHA-1 :

Valeur

Hash

Git

5819778898df55e3a762f0c5728b457970d72cae

git

46f1a0bd5592a2f9244ca321b129902a06b53e03

Je veux une phrase assez longue, au moins plus que le hash en tous cas

7a5a57cde20a9bbda76b70e9223292ce7f8472f9

Dans cet exemple, nous remarquons deux choses :

  • Un changement mineur dans le contenu change totalement le hash. Nous remarquons cela en comparant les hash de « Git » et « git ».

  • Un hash fait toujours la même taille : 40 caractères (ce qui équivaut à 160 bits).

Il est impossible de retrouver le contenu original à partir du hash. Au mieux on peut essayer de le deviner, mais on ne peut avoir aucune certitude étant donné qu’un même hash peut correspondre à différentes chaînes. En effet, si on calcule le hash de 2160+1 chaînes différentes, on a forcément au moins une chaîne qui partage le hash d’une autre (voir la section Risque de collision).

Les hashs sont souvent utilisés pour vérifier...

Pour consulter la suite, découvrez le livre suivant :
couv_EP2GIT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Gestion des fichiers et commit
Suivant
Les trois zones d’un fichier