Je suis en train de concevoir une application de serveur de fichiers où je veux vérifier si un fichier mis en cache sur un ordinateur client est la dernière version conservée sur le serveur. Je n'ai pas assez confiance à l'attribut 'changed date' dans le système de fichiers, donc je veux comparer les octets réels dans le fichier.Quelle est la probabilité de collision de hachage si la longueur du fichier est la même?
Je pense que le moyen le plus rapide de le faire (car l'envoi de tous les octets sur le Web prend du temps), est d'envoyer la longueur du fichier et les octets de hachage au serveur. Ensuite, le serveur vérifie d'abord la longueur du fichier, et s'il correspond, il calcule un hachage pour le fichier situé sur le serveur, puis vérifie s'il est identique à celui que le client a calculé.
Quelqu'un peut-il me dire quelle est la probabilité que les collisions de hachage sont lorsque la taille du fichier est la même? (J'utilise actuellement MD5 pour sa vitesse). Puis-je supposer que la taille du fichier est la même et que le hachage est le même que le contenu est le même?
Merci!
Merci! L'aspect malveillant du problème n'est pas une préoccupation :) Connaissez-vous un ordre de grandeur pour la collision? Comme un à quoi? –
@Jakob: Pour que deux fichiers spécifiques entrent en collision, la probabilité est d'environ 1 sur 340282366920938463463374607431768211456. La probabilité d'une collision dans un ensemble de fichiers est plus importante (mais toujours extrêmement, incroyablement, incroyable, étonnamment improbable). –
Je suis assez content quand les chances sont si basses! Encore une fois, merci! –