Pesquisa de site

Aprenda como gerar e verificar arquivos com soma de verificação MD5 no Linux


Uma soma de verificação é um dígito que serve como uma soma de dígitos corretos nos dados, que pode ser usado posteriormente para detectar erros nos dados durante o armazenamento ou transmissão. As somas MD5 (Message Digest 5) podem ser usadas como uma soma de verificação para verificar arquivos ou strings em um sistema de arquivos Linux.

Somas MD5 são cadeias de caracteres de 128 bits (números e letras) resultantes da execução do algoritmo MD5 em um arquivo específico. O algoritmo MD5 é uma função hash popular que gera um resumo de mensagem de 128 bits conhecido como valor hash e, quando você gera um para um arquivo específico, ele permanece precisamente inalterado em qualquer máquina, independentemente do número de vezes que é gerado.

Normalmente é muito difícil encontrar dois arquivos distintos que resultem nas mesmas strings. Portanto, você pode usar md5sum para verificar a integridade dos dados digitais, determinando se um arquivo ou ISO que você baixou é uma cópia bit a bit do arquivo remoto ou ISO.

Leitura sugerida: Progresso – Monitore o progresso de comandos (cp, mv, dd, tar, etc.) no Linux

No Linux, o programa md5sum calcula e verifica os valores de hash MD5 de um arquivo. É um componente do pacote GNU Core Utilities, portanto, vem pré-instalado na maioria, senão em todas as distribuições Linux.

Dê uma olhada no conteúdo de /etc/group salvo como groups.cvs abaixo.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,aaronkilik
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:aaronkilik
floppy:x:25:
tape:x:26:
sudo:x:27:aaronkilik
audio:x:29:pulse
dip:x:30:aaronkilik

O comando md5sums abaixo irá gerar um valor hash para o arquivo da seguinte forma:

md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Ao tentar alterar o conteúdo do arquivo removendo a primeira linha, root:x:0: e depois executar o comando pela segunda vez, tente observar o valor do hash:

md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Você notará que o valor do hash mudou, indicando que o conteúdo do arquivo foi alterado.

Agora, coloque de volta a primeira linha do arquivo, root:x:0: e renomeie-o para group_file.txt e execute o comando abaixo para gerar seu valor hash novamente:

md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

Pela saída acima, o valor do hash ainda é o mesmo mesmo quando o arquivo foi renomeado, com seu conteúdo original.

Importante: md5 sums apenas verifica/funciona com o conteúdo do arquivo e não com o nome do arquivo.

O arquivo groups_list.txt é uma duplicata de groups.csv, portanto, tente gerar o valor hash dos arquivos ao mesmo tempo da seguinte maneira.

Você verá que ambos têm valores de hash iguais, isso ocorre porque eles têm exatamente o mesmo conteúdo.

md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Você pode redirecionar os valores hash de um (s) arquivo (s) para um arquivo de texto e armazená-los e compartilhá-los com outras pessoas. Para os dois arquivos acima, você pode emitir o comando abaixo para redirecionar os valores hash gerados para um arquivo de texto para uso posterior:

md5sum groups_list.txt  groups.csv > myfiles.md5

Para verificar se os arquivos não foram modificados desde que você criou a soma de verificação, execute o próximo comando. Você deverá conseguir visualizar o nome de cada arquivo junto com “OK ”.

Leitura sugerida: Encontre os 15 principais processos por uso de memória no Linux

A opção -c ou --check diz ao comando md5sums para ler as somas MD5 dos arquivos e verificá-las.

md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Lembre-se que após criar a soma de verificação, você não pode renomear os arquivos ou então receberá um erro “Não existe tal arquivo ou diretório”, ao tentar verificar os arquivos com novos nomes.

Por exemplo:

mv groups_list.txt new.txt
$ mv groups.csv file.txt
$ md5sum -c  myfiles.md5
md5sum: groups_list.txt: No such file or directory
groups_list.txt: FAILED open or read
md5sum: groups.csv: No such file or directory
groups.csv: FAILED open or read
md5sum: WARNING: 2 listed files could not be read

O conceito também funciona para strings, nos comandos abaixo, -n significa não gerar a nova linha final:

echo -n "Tecmint How-Tos" | md5sum - 

afc7cb02baab440a6e64de1a5b0d0f1b  -
echo -n "Tecmint How-To" | md5sum - 

65136cb527bff5ed8615bd1959b0a248  -

Neste guia, mostrei como gerar valores hash para arquivos, criar uma soma de verificação para posterior verificação da integridade do arquivo no Linux. Embora tenham sido detectadas vulnerabilidades de segurança no algoritmo MD5, os hashes MD5 ainda permanecem úteis, especialmente se você confia na parte que os cria.

A verificação de arquivos é, portanto, um aspecto importante do manuseio de arquivos em seus sistemas para evitar download, armazenamento ou compartilhamento de arquivos corrompidos. Por último, mas não menos importante, como sempre entre em contato conosco através do formulário de comentários abaixo para solicitar qualquer assistência, você também pode fazer algumas sugestões importantes para melhorar este post.