Mudar o nome do arquivo afetará o Hash MD5 de um arquivo?
88
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-fonte
md5sum
e em sua implementação MD5 . Você também pode testar isso se tiver acesso amd5sum
:fonte
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.
fonte
md5sum
deve se comportar conforme o esperado.Se o hash for calculado a partir do conteúdo do arquivo, não deveria.
fonte
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?
fonte
.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:
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.
fonte
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.
fonte