Como obter o hash md5 de um arquivo

Como obter o hash md5 de um arquivo
O algoritmo de digestão de mensagens, comumente conhecido como hash md5, é um tipo de função de hash criptográfica usada principalmente para verificar a integridade dos arquivos. MD5 é um resumo de mensagens de 128 bits produzido após a execução da função MD5 contra um arquivo.

O MD5 tem suas falhas e, portanto, não é uma escolha muito boa para determinados métodos de criptografia, mas é muito adequado para verificação de arquivos. Funciona criando uma soma de verificação de um arquivo e comparando o resultado com o original. Isso significa que, se houver alterações em um arquivo, não há como produzir um valor de digestão semelhante ao original. O valor permanece constante, não importa onde seja gerado ou quantas vezes enquanto o arquivo permanecer inalterado.

Para este guia, procuraremos maneiras de gerar um valor de hash md5 de um arquivo. Isso permitirá que você verifique a integridade dos arquivos de locais remotos ou em sua máquina local.

Instale md5sum

Nos sistemas Linux e quase Major Unix e Unix, eles vêm pré-instalados com uma ferramenta MD5. O mais comum é md5sum. Por padrão, você deve encontrá -lo disponível em seu sistema.

$ que md5sum
/usr/bin/md5sum

Se você não possui a ferramenta instalada, pode usar o gerenciador de pacotes do seu sistema.

Debian/Ubuntu
No Ubuntu e outras distribuições baseadas em Debian, use APT como:

Atualização de sudo apt-get
sudo apt -get install md5sum -y

Rehl/CentOS
Em Rehl e Centos, use Yum como:

Atualização de Sudo Yum
sudo yum install md5sum

Arch/Manjaro
Se você estiver no Manjaro ou em outras distribuições baseadas em arco, use Pacman usando o comando:

Sudo Pacman -Sy
sudo pacman -s md5sum

Fedora
Finalmente, nos sistemas Fedora, use o comando dnf como:

Atualização do Sudo DNF
sudo dnf install md5sum

Gerar md5sum de um arquivo

Com a ferramenta instalada, podemos prosseguir e gerar um md5sum para um arquivo. Você pode usar qualquer arquivo básico disponível em seu sistema. No meu exemplo, estou usando os hosts /etc /disponíveis nos sistemas Linux.

Para gerar o md5sum de um arquivo, basta usar o comando md5sum seguido pelo nome do arquivo, que você pode ver no comando abaixo:

sudo md5sum /etc /hosts

O comando acima deve gerar um valor de hash do arquivo, conforme mostrado na saída abaixo:

f0ea6f62e5a12ed9aee557b23842c6f6 /etc /hosts

Uma vez que o conteúdo da mudança de arquivo, o valor md5sum se torna completamente diferente. Por exemplo, adicione um valor ao arquivo/etc/hosts.

sudo nano /etc /hosts

Adicione a seguinte entrada ao arquivo (sinta -se à vontade para mudar de maneira que achar melhor).

192.168.0.20 localhost

Se você tentar calcular o valor MD5 do arquivo com o novo conteúdo como:

sudo md5sum /etc /hosts

O valor do hash é diferente, como mostrado na saída abaixo:

F4B7F54D5B85A9E73E3C8960C6E9319E /etc /hosts

Se você reverter o arquivo em seu conteúdo original, o valor do md5sum é semelhante ao original, permitindo que você saiba quando um arquivo mudou.

OBSERVAÇÃO: O valor do MD5 será semelhante ao original, mesmo que o arquivo seja renomeado. Isso ocorre porque o MD5 é calculado com base no conteúdo do arquivo e não no nome do arquivo.

Verifique os arquivos online

Suponha que você queira verificar a integridade de um arquivo e verifique se ele é à prova de adulteração. Para fazer isso, tudo que você precisa é o valor original do MD5. No meu exemplo, estou usando um pacote Deb simples do MySQL do recurso abaixo:

https: // dev.mysql.com/downloads/mysql/

Faça o download do arquivo com wget usando o comando como:

wget https: // dev.mysql.com/get/downloads/mysql-8.0/libmysqlclient21_8.0.25-1Debian10_amd64.Deb

Depois que o arquivo é baixado:

Vamos agora verificar o valor do MD5 usando um comando:

$ md5sum libmysqlclient21_8.0.25-1Debian10_amd64.Deb

Se o arquivo não tiver sido modificado de forma alguma, você deve obter um valor semelhante ao original, como mostrado:

62EA69F71DEFBFDAC7A60C124F5769C7 LIBMYSQLCLIENT21_8.0.25-1Debian10_amd64.Deb

Conclusão

Este tutorial analisou um método simples para verificar a soma de verificação do MD5 de arquivos e verificar seu estado de modificação.

Aqui está um exercício rápido para você.

Exercício

Crie um script bash simples que verifique se um valor de arquivo MD5 tem alguma modificação registrada a cada 5 minutos. Se o arquivo foi alterado, exclua o arquivo e desligue o sistema.

Esse deve ser um exercício divertido!