Mudar o nome do arquivo afetará o Hash MD5 de um arquivo?
Mudar o nome do arquivo afetará o Hash MD5 de um arquivo?
Respostas:
Somente se o nome do arquivo foi incluído no cálculo de hash. por exemplo, em pseudocódigo:
$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);
irá produzir dois hashes separados.
Não, o hash é apenas do conteúdo do arquivo. Você pode ver isso no código-fontemd5sum
e em sua implementação MD5 . Você também pode testar isso se tiver acesso a md5sum
:
$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6 file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6 file2
$
No Linux usando o sistema de arquivos EXT, isso não acontecerá, porque um nome de arquivo não é armazenado em um arquivo, ele é armazenado na entrada do diretório (dentry) em que o arquivo reside, onde o inode do arquivo é então mapeado para um nome. Mudar um nome de arquivo não afetará seu md5sum no Linux. No Windows, não tenho certeza.
md5sum
deve se comportar conforme o esperado.
Se o hash for calculado a partir do conteúdo do arquivo, não deveria.
Em ESXi (Precisamente ESXi 5.5), md5sum no mesmo conteúdo, mas com nomes de arquivo diferentes, é diferente. Isso me leva a acreditar que a estrutura do arquivo VMFS-5 também inclui o nome do arquivo. Se não estivermos preocupados com o nome do arquivo, existe uma maneira de verificar apenas o md5sum do conteúdo do arquivo? Não consegui ver nenhuma opção. Alguma sugestão?
.vmdk
)? Nos cabeçalhos vmdk, existem dados que podem depender do nome e da localização do arquivo. Como você renomeou os arquivos em seu teste? --- Caso contrário, do ponto de vista do conteúdo do arquivo, o VMFS é um sistema de arquivos normal e o conteúdo dos arquivos não depende diretamente de seus nomes.
Em resposta ao comentário, https://stackoverflow.com/a/14360831/9392847 :
Isso funciona apenas se um arquivo for uma cópia de outro arquivo, mas não quando dois arquivos diferentes com nomes diferentes forem gerados com exatamente o mesmo conteúdo. Eu tentei isso:
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
Ambos os arquivos 1test.pdf e 2test.pdf são criados usando o software gimp . O mesmo conteúdo é exportado duas vezes com dois nomes diferentes.
1.md5 é calculado com base no conteúdo binário do ARQUIVO. 2. Nome do arquivo, última modificação etc. coisas são metadados. O md5 realmente não depende de metadados. Eu testei isso com as etapas abaixo, vamos trabalhar com os meta-dados da "última modificação" i) Eu criei um arquivo chamado "a.txt" e adicionei algum conteúdo e criei um hash, digamos que o hash é "xyz" ii) Então eu tenho acabei de adicionar um espaço no arquivo e calculei novamente o hash diga que retornou "abc" iii) Acabei de remover minha alteração na etapa (ii), ao calcular o hash novamente obtive o hash inicial ("xyz")
Isso conclui que, embora os metadados do arquivo sejam alterados, o hash permanece o mesmo até que o conteúdo do arquivo permaneça inalterado.
Espero que ajude.