¿Cambiar el nombre de un archivo afectará al Hash MD5 de un archivo?
89
Solo si el nombre del archivo se incluyó en el cálculo de hash. por ejemplo, en pseudocódigo:
$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);
producirá dos hashes separados.
No, el hash es solo del contenido del archivo. Puede ver esto en el código fuente
md5sum
y su implementación MD5 . También puede probar esto si tiene acceso amd5sum
:fuente
En Linux que usa el sistema de archivos EXT, no lo hará, porque el nombre de un archivo no se almacena en un archivo, se almacena en la entrada del directorio (dentry) en el que reside el archivo, donde el inodo del archivo se asigna a un nombre. Cambiar un nombre de archivo no tendrá ningún efecto en su md5sum en Linux. En Windows, no puedo estar seguro.
fuente
md5sum
debería comportarse como se esperaba.Si el hash se calcula a partir del contenido del archivo, no debería.
fuente
En ESXi (Precisely ESXi 5.5) md5sum en el mismo contenido pero con diferentes nombres de archivo es diferente. Eso me lleva a creer que la estructura de archivos VMFS-5 también incluye el nombre del archivo. Si no nos preocupa el nombre del archivo, ¿hay alguna forma de verificar solo el md5sum del contenido del archivo? No pude ver ninguna opción. ¿Alguna sugerencia?
fuente
.vmdk
)? En los encabezados vmdk hay datos que pueden depender del nombre y la ubicación del archivo. ¿Cómo cambió el nombre de los archivos en su prueba? --- De lo contrario, desde el punto de vista del contenido del archivo, VMFS es un sistema de archivos normal y el contenido de los archivos no depende directamente de sus nombres.En respuesta al comentario, https://stackoverflow.com/a/14360831/9392847 :
Esto solo funciona si un archivo es copia de otro archivo, pero no cuando se generan dos archivos diferentes con nombres diferentes con exactamente el mismo contenido. He intentado esto:
Tanto los archivos 1test.pdf como 2test.pdf se crean utilizando el software gimp . El mismo contenido se exporta dos veces con dos nombres diferentes.
fuente
1.md5 se calcula en función del contenido binario del ARCHIVO. 2.Nombre del archivo, última modificación, etc., las cosas son metadatos. He probado esto con los pasos a continuación, trabajemos con los metadatos de la "última modificación" i) Creé un archivo llamado "a.txt" y agregué algo de contenido y creé un hash, digamos que el hash es "xyz" ii) Entonces tengo acabo de agregar un espacio en el archivo y de nuevo calculé el hash, diga que devolvió "abc" iii) Acabo de eliminar mi cambio en el paso (ii), al calcular el hash nuevamente, obtuve el hash inicial ("xyz")
Esto concluye que a pesar de que se cambian los metadatos del archivo, el hash permanece igual hasta que el contenido del archivo permanece inalterado.
Espero eso ayude.
fuente