La modifica del nome di un file avrà effetto sull'hash MD5 di un file?
La modifica del nome di un file avrà effetto sull'hash MD5 di un file?
Risposte:
Solo se il nome del file è stato incluso nel calcolo dell'hash. ad esempio, in pseudo-codice:
$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);
produrrà due hash separati.
No, l'hash è solo del contenuto del file. Puoi vederlo nel codice sorgentemd5sum
e nella sua implementazione MD5 . Puoi anche testarlo se hai accesso a md5sum
:
$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6 file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6 file2
$
In Linux che utilizza il filesystem EXT, non lo farà, poiché un nome di file non è memorizzato in un file, viene memorizzato nella voce di directory (dentry) in cui risiede il file, dove l'inode del file viene quindi mappato a un nome. La modifica del nome di un file non avrà alcun effetto sul suo md5sum in Linux. In Windows, non posso esserne sicuro.
md5sum
dovrebbe comportarsi come previsto.
Se l'hash viene calcolato dal contenuto del file, non dovrebbe.
In ESXi (Precisely ESXi 5.5) md5sum sullo stesso contenuto ma nomi di file diversi è diverso. Questo mi porta a credere che la struttura del file VMFS-5 includa anche il nome del file. Se non siamo preoccupati per il nome del file, c'è un modo per controllare solo l'md5sum del contenuto del file? Non vedevo nessuna opzione. Eventuali suggerimenti?
.vmdk
)? Nelle intestazioni di vmdk sono presenti dati che potrebbero dipendere dal nome e dalla posizione del file. Come hai rinominato i file nel tuo test? --- In caso contrario, dal punto di vista del contenuto dei file VMFS è un normale file system e il contenuto dei file non dipende direttamente dai loro nomi.
In risposta al commento, https://stackoverflow.com/a/14360831/9392847 :
Funziona solo se un file è la copia di un altro file, ma non quando vengono generati due file diversi con nomi diversi con esattamente lo stesso contenuto. Ho provato questo:
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
Entrambi i file 1test.pdf e 2test.pdf vengono creati utilizzando il software gimp . Lo stesso contenuto viene esportato due volte con due nomi diversi.
1.md5 viene calcolato in base al contenuto binario del FILE. 2.Nome del file, ultima modifica, ecc. Le cose sono metadati.md5 non si basano realmente sui metadati. L'ho testato con i passaggi seguenti, lavoriamo con i metadati "ultima modifica" i) Ho creato un file chiamato "a.txt" e aggiunto del contenuto e creato un hash diciamo che l'hash è "xyz" ii) Poi ho ho appena aggiunto uno spazio nel file e di nuovo calcolato l'hash diciamo che ha restituito "abc" iii) Ho appena rimosso la mia modifica al passaggio (ii), calcolando nuovamente l'hash ho ottenuto l'hash iniziale ("xyz")
Questo conclude che anche se i metadati del file vengono modificati, l'hash rimane lo stesso finché il contenuto del file rimane inalterato.
Spero che sia d'aiuto.