Aprender como gerar e verificar ficheiros com checksum MD5 no Linux

Um checksum é um dígito que serve como soma de dígitos correctos nos dados, que pode ser usado mais tarde para detectar erros nos dados durante o armazenamento ou transmissão. Os totais MD5 (Message Digest 5) podem ser utilizados como soma de verificação para verificar ficheiros ou strings num sistema de ficheiros Linux.

MD5 Os totais são strings de caracteres de 128 bits (numerais e letras) resultantes da execução do algoritmo MD5 contra um ficheiro específico. O algoritmo MD5 é uma função de hash popular que gera uma digestão de mensagem de 128-bit referida como valor de hash, e quando se gera um para um determinado ficheiro, este fica precisamente inalterado em qualquer máquina independentemente do número de vezes que é gerado.

É normalmente muito difícil encontrar dois ficheiros distintos que resultem nas mesmas cadeias de caracteres. Portanto, pode utilizar o md5sum para verificar a integridade dos dados digitais, determinando que um ficheiro ou ISO que descarregou é uma cópia bit a bit do ficheiro remoto ou ISO.

Suggested Read: Progresso – Monitorizar Progresso para (cp, mv, dd, tar, etc.) Comandos em Linux

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

Dê uma vista de olhos ao conteúdo de /etc/group guardado como groups.cvs abaixo.

O comando md5sums abaixo irá gerar um valor hash para o ficheiro como se segue:

$ md5sum groups.csvbc527343c7ffc103111f3a694b004e2f groups.csv

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

$ md5sum groups.csv46798b5cfca45c46a84b7419f8b74735 groups.csv

Notará que o valor do hash mudou, indicando que o conteúdo do ficheiro foi alterado.

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

$ md5sum groups_list.txtbc527343c7ffc103111f3a694b004e2f groups_list.txt

Da saída acima, o valor hash continua o mesmo mesmo mesmo mesmo quando o ficheiro foi renomeado, com o seu conteúdo original.

Importante: as somas md5 só verificam/trabalham com o conteúdo do ficheiro e não com o nome do ficheiro.

O ficheiro groups_list.txt é um duplicado de groups.csv, portanto, tente gerar o valor de hash dos ficheiros ao mesmo tempo que o seguinte.

Verá que ambos têm valores de hash iguais, isto é porque têm exactamente o mesmo conteúdo.

$ md5sum groups_list.txt groups.csv bc527343c7ffc103111f3a694b004e2f groups_list.txtbc527343c7ffc103111f3a694b004e2f groups.csv

Poderá redireccionar o(s) valor(es) de hash de um(s) ficheiro(s) para um ficheiro de texto e armazená-lo, partilhá-lo(s) com outros. Para os dois ficheiros acima, pode emitir o comando abaixo para redireccionar os valores de hash gerados num ficheiro de texto para utilização posterior:

$ md5sum groups_list.txt groups.csv > myfiles.md5

Para verificar se os ficheiros não foram modificados desde que criou o checksum, execute o comando seguinte. Deverá poder visualizar o nome de cada ficheiro juntamente com “OK”.

Suggested Read: Procurar Top 15 Processos por Utilização de Memória no Linux

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

$ md5sum -c myfiles.md5groups_list.txt: OKgroups.csv: OK

Lembra-te que depois de criar o checksum, não podes renomear os ficheiros ou então recebes um erro “No such file or directory”, quando tentas verificar os ficheiros com novos nomes.

Por exemplo:

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

O conceito também funciona tanto para strings, nos comandos abaixo, -n significa não emitir a nova linha de trilha:

$ echo -n "Tecmint How-Tos" | md5sum - afc7cb02baab440a6e64de1a5b0d0f1b -
$ echo -n "Tecmint How-To" | md5sum - 65136cb527bff5ed8615bd1959b0a248 -

Neste guia, mostrei-lhe como gerar valores de hash para ficheiros, criar um checksum para posterior verificação da integridade do ficheiro no Linux. Embora tenham sido detectadas vulnerabilidades de segurança no algoritmo MD5, os hashes MD5 continuam a ser úteis especialmente se confiar na parte que os cria.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *