61 votes

Un hachage cryptographique ou une somme de contrôle identique pour deux fichiers signifie-t-il qu'ils sont identiques ?

J'ai 2 documents excel et je veux vérifier s'ils sont exactement les mêmes, à part le nom du fichier.

Par exemple, les fichiers s'appellent fileone.xls y filetwo.xls . En dehors des noms de fichiers, leurs contenus sont supposés être identiques mais c'est ce que je veux vérifier.

J'ai cherché des moyens de revoir cela et sans installer un tas de plugins. Il ne semble pas y avoir de moyen direct.

J'ai essayé de générer des hachages MD5 pour les deux fichiers. Lorsque les hachages sont identiques, cela signifie-t-il que le contenu des fichiers est identique à l'identique ?

2voto

Stilez Points 1425

La réponse à cette question a été donnée, mais un résumé pourrait être utile.

Si vous voulez vérifier si deux fichiers sont identiques, cela dépend en grande partie du fait que les fichiers et les hachages sont sous votre contrôle ou non.

Si vous générez vous-même les hachages à partir des fichiers, et que vous êtes sûr que personne d'autre n'a eu l'opportunité/les compétences/la motivation d'essayer délibérément de vous faire parvenir à une conclusion erronée, alors presque n'importe quel hachage - même les hachages "connus pour être cassés" comme MD5 et SHA1 sont presque sûrs d'être suffisants. Mais cela, je veux dire que vous pourriez générer des fichiers à grande vitesse pendant des millions d'années et vous auriez toujours Il est peu probable de se retrouver avec deux fichiers qui sont en fait différents mais qui ont le même hachage. C'est presque certainement sans danger.

C'est le scénario que vous rencontrez lorsque vous voulez vérifier rapidement si deux répertoires sur votre PC ou votre serveur de fichiers ont le même contenu, si des fichiers dans un répertoire sont des doublons exacts, etc., et que vous êtes pratiquement sûr que les fichiers n'ont pas été modifiés de manière illicite, et que vous faites confiance à votre application/utilité de hachage pour donner des résultats corrects.

Si vous êtes dans un scénario où l'un des fichiers - ou un hachage précalculé - pourrait avoir été manipulé ou conçu pour vous amener à une conclusion erronée, vous avez besoin d'un hachage plus fort (non cassé) et/ou d'une autre sécurité. Par exemple, si vous téléchargez un fichier et vérifiez qu'il est valide en examinant un hachage, un attaquant pourrait être en mesure de créer un mauvais fichier avec le bon hachage, ou d'attaquer le site Web pour placer un hachage incorrect lorsque vous recherchez la "bonne" valeur (attendue). Cela revient à des questions de sécurité plus larges.

2voto

Chad Points 1519

Sur la ligne de commande Windows, vous pouvez utiliser la commande comp pour déterminer si deux fichiers sont exactement les mêmes. Par exemple :

comp fileone.xls filetwo.xls

1voto

jottr Points 613

Lorsque les hachages sont identiques, cela signifie-t-il que le contenu du fichier est 1:1 le même ?

Non. Si les hachages sont différent, il fait signifie que le contenu est différent. Des codes de hachage égaux n'impliquent pas un contenu égal. Un hashcode est une réduction d'un grand domaine à un plus petit domaine, par définition : l'implication est que les hascodes sur un contenu inégal peuvent être égaux. Sinon, il n'y aurait aucun intérêt à les calculer.

1voto

Kamil Maciorowski Points 57004

Cette réponse se veut une carte pratique des scénarios qui peuvent ou ne peuvent pas se produire, et des raisonnements que vous pouvez appliquer. Reportez-vous aux autres réponses pour savoir pourquoi les fonctions de hachage fonctionnent de cette façon.


Une fois que vous avez choisi une fonction de hachage et que vous vous y tenez, ce sont toutes les combinaisons à envisager :

des valeurs de hachage identiques

différentes valeurs de hachage

fichiers identiques

peut arriver, commun

ne peut pas se produire, impossible

différents fichiers

peut arriver, rare*

peut arriver, commun

* rare, à moins que la personne qui génère (au moins un des) fichiers ne vise délibérément ce scénario.

Le scénario dans lequel des fichiers identiques génèrent des valeurs de hachage différentes est le seul qui soit strictement impossible.


Deux raisonnements qui toujours appliquer :

  • Si les fichiers sont identiques, les valeurs de hachage sont identiques. pour sûr .
  • Si les valeurs de hachage sont différentes, les fichiers sont différents. pour sûr .

Deux raisonnements qui sont non strict :

  • Si les fichiers sont différents, les valeurs de hachage sont probablement différent.
  • Si les valeurs de hachage sont identiques, les fichiers sont probablement identique.

0voto

MrZombie Points 718

Pour vos besoins, oui, des hachages identiques signifient des fichiers identiques.

Comme d'autres réponses l'indiquent clairement, il est possible de construire deux fichiers différents qui donnent le même hachage et MD5 n'est pas particulièrement robuste à cet égard.

Utilisez donc un algorithme de hachage plus puissant si vous prévoyez de comparer un grand nombre de documents Excel ou si vous pensez que quelqu'un pourrait vouloir manipuler la comparaison. SHA1 est meilleur que MD5. SHA256 est encore meilleur et devrait vous donner une confiance totale pour votre utilisation particulière.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X