Содержание
Повышение безопасности вашего корпоративного приложения — самая большая проблема любой организации .
Рассмотрим этот фактический сценарий производства:
- У вас есть приложение, которое
reads the valueиз файла - На основании значения файла это
performs some operationsкак добавить / удалить / выполнить - Вы развернули это приложение в производственной среде
- Что делать, если некоторые
unauthorized personchanges the valueэтого файла без вашего ведома? - Ваше приложение
simply gets new valueиз файла и запускает логику, которая может вызватьunexpected outcome - Если вы можете включить контрольную сумму 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 проекта .
|
1
2
3
4
5
6
7
8
9
10
|
< зависимость >
< groupId > commons — кодек < / groupId >
< artifactId > commons — кодек < / artifactId >
< версия > 1.10 < / версия >
< / зависимость >
< зависимость >
< groupId > commons — io < / groupId >
< artifactId > commons — io < / artifactId >
< версия > 2.4 < / версия >
< / зависимость >
|
Мы используем commons-codec а также commons-io библиотеки .
Шаг 3
Создать контрольную сумму MD5, используя DigestUtils.md5Hex утилита и распечатать результат на консоли .
Вот полная программа
|
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/
строка md5Value знак равно crunchifyGetMd5ForFile ( file ) ;
log ( Файл: + файл + / nValue: + md5Value ) ;
}
}
|
Выход:
|
1
2
|
Файл : / Users / < имя пользователя > / Downloads / index . PHP
Значение : 8ab0ecbe3570a2ee5f59e26a92528c5e
|
Как вы собираетесь использовать эту контрольную сумму MD5 во время выполнения для проверки целостности файла?
Вы можете сравнить эту контрольную сумму MD5 во время выполнения со значением, хранящимся в базе данных y0ur, например, MySQL, Oracle и т. Д. Существует также ряд других способов, с помощью которых вы можете достичь того же, но мы обсудим это в будущих уроках.
0.00 (0%) 0 votes










