Как получить контрольную сумму MD5 для любого файла в Java? Как использовать утилиту Apache Common DigestUtils.md5Hex?

Опубликовано: 2021-08-28
Как получить контрольную сумму MD5 для любого файла в Java? Используйте кодек Commons DigestUtils.md5Hex.

Усилить безопасность вашего корпоративного приложения — самая большая проблема любой организации.

Рассмотрим этот реальный производственный сценарий:

  1. У вас есть приложение, которое reads the value из файла
  2. На основе значения файла он performs some operations , такие как добавление/удаление/выполнение.
  3. Вы развернули это приложение в производственной среде.
  4. Что, если unauthorized person changes the value этого файла без вашего ведома?
  5. Ваше приложение simply gets new value из файла и запускает логику, которая может привести к unexpected outcome .
  6. Если у вас может быть включена контрольная сумма MD5 для этого файла, вы could have created an exception с четким сообщением об ошибке и you could have prevented disaster или неожиданный результат.

Что такое контрольная сумма MD5?

Контрольная сумма MD5 для файла представляет собой 128-bit value , что-то вроде отпечатка файла. Это может быть полезно как для сравнения файлов, так и для контроля их целостности.

Получить одно и то же значение для другого файла практически невозможно. В этом руководстве мы создадим простую программу Java, которая создает и возвращает значения MD5 для данного файла. В нашем случае это файл index.php .

Давайте начнем:

Шаг 1

Создайте открытый класс CrunchifyGetMD5ForFile.java

Шаг 2

Импортируйте ниже две зависимости maven в файл pom.xml вашего проекта. Учебник по преобразованию проекта в проект maven.

Мы используем библиотеки commons-codec и commons-io .

Шаг 3

Создайте контрольную сумму MD5 с помощью утилиты DigestUtils.md5Hex и выведите результат на консоль.

DigestUtils.md5Hex => Реализация encodeHex

Вот полная программа.

Создайте класс crunchifyGetMd5ForFile.java

Просто запустите указанную выше программу как Java-приложение, и вы увидите результат, подобный этому.

Результат консоли IntelliJ IDEA:

Как вы собираетесь использовать эту контрольную сумму MD5 во время выполнения для проверки целостности файла?

Вы можете сравнить эту контрольную сумму MD5 во время выполнения со значением, хранящимся в вашей базе данных, например, MySQL, Oracle и т. д.

Есть ряд других способов добиться того же, но мы обсудим это в следующих уроках.