Comment les hachages peuvent-ils être utilisés pour suivre efficacement les modifications de version dans les documents?

2

J'ai entendu dire que les logiciels open source les utilisent. Sont-ils calculés sur un fichier entier? Par exemple, si vous changiez une lettre de Moby Dick, le hachage serait différent?

Je suis curieux de savoir comment suivre les modifications de certains fichiers contenant entre 1 et 1 million de caractères.

Est-ce qu’il s’agit ici d’un parc de base-ball pour savoir combien de temps il faut pour calculer un hachage pour un fichier de caractères de 1k et 1M, respectivement? Devrais-je m'inquiéter de ce problème?

user391339
la source
Pour ces tailles de fichiers, vous ne devriez pas avoir à vous inquiéter.
Louis

Réponses:

2

Regardez ça: http://en.wikipedia.org/wiki/MD5#Applications

MD5 était le premier hachage largement populaire calculé sur l'ensemble du fichier. Il a de graves problèmes de sécurité, c'est pourquoi il n'est plus utilisé autant. En lisant sur MD5 et sur son utilisation, vous trouverez les réponses à la plupart, sinon à toutes vos questions de suivi.

Mais en termes simplifiés, si vous hachez du contenu une et appliquez une bonne fonction de hachage, vous obtenez une valeur de hachage binaire X . Apporter des modifications au contenu une peu importe sa taille, pour générer du contenu une' . La valeur de hachage du contenu une' est maintenant une nouvelle valeur de hachage X' , avec chaque morceau de X' avoir 50% de chance d'être différent du bit correspondant dans X .

Bien sûr, cela signifie que si vous utilisez un hachage 32 bits, après avoir apporté une modification à une vous avez une probabilité de 2 ^ -32 (0,000000023283%) d'obtenir toujours la même valeur de hachage. C'est pourquoi les hachages sont généralement plus longs que 32 bits.

Peter
la source