¿Cómo obtener la suma de verificación MD5 para cualquier archivo dado en Java? ¿Cómo usar la utilidad DigestUtils.md5Hex de Apache Common?

Publicado: 2021-08-28
¿Cómo obtener la suma de verificación MD5 para cualquier archivo dado en Java? Use DigestUtils.md5Hex de commons-codec

Reforzar la seguridad de su aplicación empresarial es el mayor desafío de cualquier organización.

Considere este escenario de producción real:

  1. Tiene una aplicación que reads the value de un archivo
  2. Según el valor del archivo, performs some operations como agregar/eliminar/ejecutar
  3. Ha implementado esta aplicación en un entorno de producción.
  4. ¿Qué pasa si alguna unauthorized person changes the value de ese archivo sin su conocimiento?
  5. Su aplicación simply gets new value de un archivo y ejecuta la lógica que puede causar unexpected outcome
  6. Si puede tener la suma de verificación MD5 habilitada para ese archivo, could have created an exception con un mensaje de error claro y you could have prevented disaster o un resultado inesperado

¿Qué es la suma de comprobación MD5?

La suma de comprobación MD5 de un archivo es un 128-bit value , algo así como una huella digital del archivo. Puede ser útil tanto para comparar los archivos como para controlar su integridad.

Obtener el mismo valor para un archivo diferente es casi imposible. En este tutorial, crearemos un programa Java simple que crea y devuelve valores MD5 para un archivo determinado. En nuestro caso es el archivo index.php .

Empecemos:

Paso 1

Crear clase pública CrunchifyGetMD5ForFile.java

Paso 2

Importe debajo de dos dependencias maven al archivo pom.xml de su proyecto. Tutorial para convertir proyecto a proyecto maven.

Estamos utilizando las bibliotecas commons-codec y commons-io .

Paso 3

Cree una suma de comprobación MD5 utilizando la utilidad DigestUtils.md5Hex e imprima el resultado en la consola.

DigestUtils.md5Hex => Implementación encodeHex

Aquí hay un programa completo.

Crear clase crunchifyGetMd5ForFile.java

Simplemente ejecute el programa anterior como una aplicación Java y verá un resultado similar a este.

Resultado de la consola IntelliJ IDEA:

¿Cómo va a utilizar esta suma de comprobación MD5 en tiempo de ejecución para verificar la integridad del archivo?

Puede comparar esta suma de verificación MD5 en tiempo de ejecución con el valor almacenado en su base de datos, como MySQL, Oracle, etc.

Hay varias otras formas en que podría lograr lo mismo, pero discutiremos esto en futuros tutoriales.