La modification d'un nom de fichier affectera-t-elle le hachage MD5 d'un fichier?

88

La modification d'un nom de fichier affectera-t-elle le hachage MD5 d'un fichier?

Michael Shnitzer
la source

Réponses:

31

Uniquement si le nom du fichier a été inclus dans le calcul du hachage. par exemple, en pseudo-code:

$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);

produira deux hachages séparés.

Marc B
la source
20
La question se pose sur l'outil CLI "md5sum", et non sur l'algorithme en général.
jameshfisher
205

Non, le hachage concerne uniquement le contenu du fichier. Vous pouvez le voir dans la sourcemd5sum et son implémentation MD5 . Vous pouvez également tester cela si vous avez accès à md5sum:

$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6  file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6  file2
$
Jameshfisher
la source
18
Cela devrait être la réponse. La question est étiquetée "md5sum".
ingyhere
3
Merci pour une réponse claire.
Eddie B
Parfait! Je n'avais pas Linux pour essayer ça. Mais j'ai Stackoverflow :)
Faizan
Vous n'avez pas besoin d'utiliser Linux pour le savoir. Vous pouvez produire le même résultat sous MacOSX ou Windows.
Alexandre Mulatinho
1
Au cas où quelqu'un chercherait l'équivalent Windows comme @alexandreMulatinho mentionné: remplacez md5sum par fciv et cp par copy, et cela fonctionne de la même manière. Si vous entrez ensuite dans le sous-système Windows pour Linux, les hachages md5sum correspondent à ceux de fciv.
Jake Stevens-Haas
4

Sous Linux utilisant le système de fichiers EXT, ce ne sera pas le cas, car un nom de fichier n'est pas stocké dans un fichier, il est stocké dans l'entrée de répertoire (dentry) dans laquelle réside le fichier, où l'inode du fichier est ensuite mappé à un nom. Changer un nom de fichier n'aura aucun effet sur sa somme md5 sous Linux. Sous Windows, je ne peux pas être sûr.

GL2014
la source
3
De plus, les systèmes de fichiers Windows ne stockent pas le nom de fichier dans le fichier. Un simple port de md5sumdoit se comporter comme prévu.
MauganRa
1

Si le hachage est calculé à partir du contenu du fichier, il ne devrait pas.

Ted Hopp
la source
4
La question se pose sur l'outil CLI "md5sum", et non sur l'algorithme en général.
jameshfisher
0

Dans ESXi (précisément ESXi 5.5) md5sum sur le même contenu mais des noms de fichiers différents sont différents. Cela me porte à croire que la structure de fichier VMFS-5 comprend également le nom de fichier. Si nous ne sommes pas préoccupés par le nom du fichier, existe-t-il un moyen de vérifier uniquement la somme md5 du contenu du fichier? Je n'ai vu aucune option. Aucune suggestion?

Venfah Nazir
la source
De quels fichiers parlez-vous? Images de disque virtuel ( .vmdk)? Dans les en-têtes vmdk, il y a des données qui peuvent dépendre du nom et de l'emplacement du fichier. Comment avez-vous renommé les fichiers de votre test? --- Sinon, du point de vue du contenu des fichiers, VMFS est un système de fichiers normal et le contenu des fichiers ne dépend pas directement de leurs noms.
pabouk
-1

En réponse au commentaire, https://stackoverflow.com/a/14360831/9392847 :

Cela ne fonctionne que si un fichier est une copie d'un autre fichier, mais pas lorsque deux fichiers différents avec des noms différents sont générés avec exactement le même contenu. J'ai essayé ceci:

nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/1test.pdf
c5a445b7186dfb220ea79d2001acf3f1  /home/nancy/Documents/1test.pdf
nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/2test.pdf
cefa063abf0c0a9e80b2b75e70100836  /home/nancy/Documents/2test.pdf

Les fichiers 1test.pdf et 2test.pdf sont créés à l'aide du logiciel gimp . Le même contenu est exporté deux fois avec deux noms différents.

Nancy
la source
Cela signifie que le contenu du fichier n'est pas exactement le même ... Le programme doit exporter des méta-données différentes dans chacun
Milney
-2

1.md5 est calculé sur la base du contenu binaire du FICHIER. 2.Nom du fichier, dernière modification, etc. J'ai testé cela avec les étapes ci-dessous, travaillons avec les méta-données "dernière modification" i) J'ai créé un fichier nommé "a.txt" et ajouté du contenu et créé un hachage dit que le hachage est "xyz" ii) Ensuite, j'ai vient d'ajouter un espace dans le fichier et de nouveau calculé le hachage, dire qu'il a renvoyé "abc" iii) Je viens de supprimer mon changement à l'étape (ii), en calculant à nouveau le hachage, j'ai le hachage initial ("xyz")

Cela conclut que même si les métadonnées du fichier sont modifiées, le hachage reste le même jusqu'à ce que le contenu du fichier reste inchangé.

J'espère que ça aide.

marron
la source