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.)