MD5SUM para o arquivo copiado

0

O MD5SUM para um arquivo muda quando faço uma cópia do arquivo?

Exemplo:

$ md5sum file01.dmp
$ cp file01.dmp file02.dmp
$ md5sum file02.dmp

Os dois MD5SUMs não devem corresponder?

    
por oradbanj 04.03.2016 / 17:06

2 respostas

3

md5sum (e sha1sum e sha256sum etc.) calculam um hash do conteúdo do arquivo. Isso não inclui o nome do arquivo ou qualquer outro metadado (como tempos de modificação). Se dois arquivos tiverem o mesmo conteúdo, então md5sum gerará o mesmo hash para cada um. (Observe que a saída de md5sum consiste no hash e no nome do arquivo. O hash não será alterado se você renomear o arquivo, mas é claro que a parte do nome do arquivo da saída será alterada.)

É sempre verdade que dois arquivos que geram hashes diferentes têm conteúdos diferentes. Se um arquivo copiado gera um hash diferente, a cópia falhou de alguma forma, ou um dos arquivos foi modificado após a cópia.

No entanto, é não necessariamente verdadeiro que dois arquivos que geram o mesmo hash tenham o mesmo conteúdo. Como os hashes são um tamanho fixo, há um grande número de arquivos diferentes que gerarão o mesmo hash. Isso é chamado de colisão. Mas encontrar uma colisão não deve ser fácil. (É para o MD5, no entanto, e é por isso que ele não é mais considerado seguro. O MD5 ainda é muito bom o suficiente para detectar corrupção acidental de arquivos, mas não para modificação mal-intencionada.)

    
por 04.03.2016 / 17:46
1

A saída md5sum mudará porque informa o próprio nome do arquivo no último campo. Para remover o nome do arquivo para que somente o hash seja gerado, use awk ou cut :

md5sum filename | cut -d ' ' -f1
    
por 04.03.2016 / 17:46

Tags