Como obter a soma de verificação MD5 para qualquer arquivo em Java? Como usar o utilitário DigestUtils.md5Hex do Apache Common?

Publicados: 2021-08-28
Como obter a soma de verificação MD5 para qualquer arquivo em Java? Use DigestUtils.md5Hex do codec comum

Reforçar a segurança do seu aplicativo corporativo é o maior desafio de qualquer organização.

Considere este cenário de produção real:

  1. Você tem um aplicativo que reads the value de um arquivo
  2. Com base no valor do arquivo, ele performs some operations como adicionar/excluir/executar
  3. Você implantou este aplicativo no ambiente de produção
  4. E se alguma unauthorized person changes the value desse arquivo sem o seu conhecimento?
  5. Seu aplicativo simply gets new value de um arquivo e executa a lógica que pode causar unexpected outcome
  6. Se você tiver a soma de verificação MD5 habilitada para esse arquivo - você could have created an exception com uma mensagem de erro clara e you could have prevented disaster ou resultados inesperados

O que é soma de verificação MD5?

A soma de verificação MD5 para um arquivo é um 128-bit value , algo como uma impressão digital do arquivo. Pode ser útil tanto para comparar os arquivos quanto para seu controle de integridade.

Obter o mesmo valor para arquivos diferentes é quase impossível. Neste tutorial vamos criar um programa Java simples que cria e retorna valores MD5 para um determinado arquivo. No nosso caso é o arquivo index.php .

Vamos começar:

Passo 1

Criar classe pública CrunchifyGetMD5ForFile.java

Passo 2

Importe abaixo duas dependências do maven para o arquivo pom.xml do seu projeto. Tutorial para converter projeto em projeto maven.

Estamos usando bibliotecas commons-codec e commons-io .

Etapa 3

Crie a soma de verificação MD5 usando o utilitário DigestUtils.md5Hex e imprima o resultado no console.

DigestUtils.md5Hex => Implementação encodeHex

Aqui está um programa completo.

Crie a classe crunchifyGetMd5ForFile.java

Basta executar o programa acima como um aplicativo Java e você verá um resultado semelhante a este.

Resultado do console do IntelliJ IDEA:

Como você vai usar esta soma de verificação MD5 em tempo de execução para verificar a integridade do arquivo?

Você pode comparar essa soma de verificação MD5 em tempo de execução com o valor armazenado em seu banco de dados, como MySQL, Oracle, etc.

Existem várias outras maneiras de conseguir o mesmo, mas discutiremos isso em tutoriais futuros.