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

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

822
0

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

Рассмотрим этот фактический сценарий производства:

  1. У вас есть приложение, которое reads the value из файла
  2. На основании значения файла это performs some operations как добавить / удалить / выполнить
  3. Вы развернули это приложение в производственной среде
  4. Что делать, если некоторые unauthorized personchanges 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 проекта .

pom.xml

1
2
3
4
5
6
7
8
9
10
< зависимость >
< groupId > commonsкодек < / groupId >
< artifactId > commonsкодек < / artifactId >
< версия > 1.10 < / версия >
< / зависимость >
< зависимость >
< groupId > commonsio < / groupId >
< artifactId > commonsio < / artifactId >
< версия > 2.4 < / версия >
< / зависимость >

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

Шаг 3

Создать контрольную сумму MD5, используя DigestUtils.md5Hex утилита и распечатать результат на консоли .

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

CrunchifyGetMD5ForFile.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
пакет ком . crunchify. учебные пособия ;
Импортировать Java. Ио. Файл ;
Импортировать Java. Ио. FileInputStream ;
Импортировать Java. Ио. IOException ;
Импортировать орг. апач . Общин. кодек. дайджест. DigestUtils ;
Импортировать орг. апач . Общин. Ио. IOUtils ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyGetMD5ForFile {
общественности статический строка crunchifyGetMd5ForFile ( String crunchifyFile ) {
Файл myFile знак равно новый Файл ( crunchifyFile ) ;
вернуть crunchifyGetMd5ForFile ( myFile ) ;
}
общественности статический строка crunchifyGetMd5ForFile ( файл crunchifyFile ) {
строка crunchifyValue знак равно ноль ;
FileInputStream crunchifyInputStream знак равно ноль ;
пытаться {
crunchifyInputStream знак равно новый FileInputStream ( crunchifyFile ) ;
// md5Hex преобразует массив байтов в массив символов, представляющих шестнадцатеричные значения каждого байта по порядку.
// Возвращенный массив будет вдвое длиннее переданного массива, поскольку для представления любого заданного байта требуется два символа.
crunchifyValue знак равно DigestUtils . md5Hex ( IOUtils . toByteArray ( crunchifyInputStream ) ) ;
} ловить ( IOException е ) {
log ( Эй, есть ошибка: + е ) ;
} в конце концов {
IOUtils . closeQuietly ( crunchifyInputStream ) ;
}
вернуть crunchifyValue ;
}
// Простой лог утилита
частный статический недействительным log ( Строка строка ) {
Система. вне. println ( строка ) ;
}
общественности статический недействительным главная ( Строка agrs [ ] ) {
// Получим MD5 для файла index.php, расположенного в / Users / <имя пользователя> / Downloads
строка файл знак равно /Users//Downloads/index.php ;
строка md5Value знак равно crunchifyGetMd5ForFile ( file ) ;
log ( Файл: + файл + / nValue: + md5Value ) ;
}
}

Выход:

Результат

1
2
Файл : / Users / < имя пользователя > / Downloads / index . PHP
Значение : 8ab0ecbe3570a2ee5f59e26a92528c5e

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

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

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

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Как перебрать экземпляр LinkedList в Java?

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь