Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/16: Рейтинг темы: голосов - 16, средняя оценка - 4.81
5 / 5 / 2
Регистрация: 12.10.2011
Сообщений: 75
1

Утилита проверки целостности файлов и поиска дубликатов

22.03.2013, 19:39. Просмотров 2947. Ответов 15
Метки нет (Все метки)

Пишу корсовой на тему проверки целостности файлов и поиска дубликатов. Думаю, что буду использовать формирование контрольных сумм с помощью MD5. Но возник вопрос: как отличить измененный файл от поврежденного. Например есть нормальный неповрежденный текстовый файл, в нем некоторая информация и его можно редактировать. Так вот это лишь изменение, а контрольная сумма изменится от этого при ее новом вычислении. Тогда что же будет критерием проверки?
Посоветуйте что-нибудь полезное и прошу не кидаться помидорами и записывать во "враги народа", я в jave новичок
+ ко всему набросал код формирования контрольной суммы по MD5.
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
public String GetMD5String(String pathToFile)
{
    String output = "";
    try
    {
        File f = new File(pathToFile);
        if (f.exists())
        {
            MessageDigest digest = MessageDigest.getInstance("MD5");
            InputStream is = new FileInputStream(f);
            byte[] buffer = new byte[819200];
            int read = 0;
            while ((read = is.read(buffer)) > 0)
            {
                digest.update(buffer, 0, read);
            }
            byte[] md5sum = digest.digest();
            BigInteger bigInt = new BigInteger(1, md5sum);
            output = bigInt.toString(16);
            is.close();
        }
        else
        {
            return "";
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
    return output;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2013, 19:39
Ответы с готовыми решениями:

Утилита проверки целостности файла
Прошу вашей помощи , так как уже обрыскал все что только можно . Нужно написать программу (утилиту)...

Алгоритм поиска дубликатов файлов
Подскажите алгоритм поиска дубликатов файлов, я не могу придумать нормальный. Моя идея -...

Нужен алгоритм поиска дубликатов файлов
Сразу скажут что один алгоритм я уже осуществил, но других алгоритмов я не знаю, просто интуитивно...

Разработка программы (процедуры) поиска дубликатов файлов на диске
Помогите пожалуйста разработать программу. Выполняться она должна на одном из языков высокого...

15
2577 / 2250 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.03.2013, 19:40 2
Цитата Сообщение от Ivan Fantom Посмотреть сообщение
Так вот это лишь изменение
нет это новый файл
0
5 / 5 / 2
Регистрация: 12.10.2011
Сообщений: 75
22.03.2013, 21:10  [ТС] 3
Ну и пусть, но это не ответ на вопрос.
0
2577 / 2250 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.03.2013, 21:14 4
по моему вполне ответ
храните файл и его md5summ и сверяйте при проверке, измененный | новый | битый = новая md5 = invalid_file

меня только смущает BigInteger как контейнер суммы, чем вам не угодил сам MessageDigest и его toString() ?

ну и вообще ваш метод немного великоват
Java
1
2
3
4
5
6
7
8
9
10
MessageDigest md = MessageDigest.getInstance("MD5");
InputStream is = new FileInputStream("file.txt");
try {
  is = new DigestInputStream(is, md);
  // read stream to EOF as normal...
}
finally {
  is.close();
}
byte[] digest = md.digest();
или

Java
1
String digest = md.toString();
1
5 / 5 / 2
Регистрация: 12.10.2011
Сообщений: 75
22.03.2013, 21:26  [ТС] 5
Я так и не понял, как установить состояние файла. MD5 всего лишь уникальная характеристика файла, но разве по ней можно судить о том, что файл поврежден | изменен | новый ? Может я чего не знаю, что знаете вы? То, что MD5 сумма изменится говорит, что файл отличается от своей предыдущей версии и только, но изменен | поврежден ли он неясно.
0
2577 / 2250 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.03.2013, 21:31 6
Цитата Сообщение от Ivan Fantom Посмотреть сообщение
Может я чего не знаю, что знаете вы?
может вам нужно чётче для себя сформулировать задание, по каким критериям решать что файл в порядке но всего лишь изменился и создать для него систему контроля версий.
например:
1. файл 1.txt md5 = blabla1; changes = {}
2. файл 1.txt md5 = blabla2; changes = {byte_start a1; diff bla bla; byte_end b2}
3. файл 1.txt md5 = blabla3; changes = {byte_start aa3; diff bla2bla2 byte_end bbb5}
0
5 / 5 / 2
Регистрация: 12.10.2011
Сообщений: 75
22.03.2013, 21:41  [ТС] 7
Окей, а может вы знаете где есть примеры таких критериев проверки или может литература какая-нибудь на тему целостности файлов?
0
2577 / 2250 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.03.2013, 23:31 8
критерии проверки это полностью в вашей власти, откуда мне знать что в этих файлах вы собираетесь хранить, текст, музыку, видео, etc
0
5 / 5 / 2
Регистрация: 12.10.2011
Сообщений: 75
26.03.2013, 09:48  [ТС] 9
у меня программа должна уметь работать с разными файлами, я не определяю структуру файлов. Т.е. например есть в папке файлы .mp3, .jpeg, .doc и т.д. И прога должна определить состояние каждого из них. И каким же образом это можно сделать на java?
0
2577 / 2250 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
26.03.2013, 11:36 10
Цитата Сообщение от Ivan Fantom Посмотреть сообщение
И каким же образом это можно сделать на java?
давайте оставим пока яву в покое.
лучше скажите каким образом это можно сделать вообще, вот например doc,
как вы хотите проверять что он не изменился малость (кто-то добавил в текст 1 точку)
и как если на винте порушился 1 байт, умеете декодировать шифрованный формат майкрософт?

даже если вдруг умеете, читали лицензию от майкров?
дают они разрешение на такие действия?
0
5 / 5 / 2
Регистрация: 12.10.2011
Сообщений: 75
26.03.2013, 15:08  [ТС] 11
Цитата Сообщение от mutagen Посмотреть сообщение
лучше скажите каким образом это можно сделать вообще, вот например doc,
как вы хотите проверять что он не изменился малость (кто-то добавил в текст 1 точку)
и как если на винте порушился 1 байт, умеете декодировать шифрованный формат майкрософт?
Вот именно. Я же не знаю как это сделать-то, потому и спрашиваю.
0
2577 / 2250 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
26.03.2013, 15:28 12
Хорошо, тогда вот вам решение:

1. написать поддержку всех вами перечисленных форматов, mp3, doc, avi ..... и много других
2. написать систему контроля версий основанную на всех этих форматах
3. написать контроллер, который будет определять изменились ли данные валидно или разрушены по форс мажор причинам
4. для этого понадобится мониторить что происходит с этими файлами с точки зрения их пользователей
5. поэтому вам понадобится секьюрити интерцептор который будет проверять легитимность юзера пытающегося изменить файл и делать бекап его на момент выдачи на редактирование, после редактирования валидировать по пункту 1 и сохранять историю в 2 и потом уже переписывать изменённый поверх оригинала.

вобщем всего то делов написать свою операционку на яве
0
5 / 5 / 2
Регистрация: 12.10.2011
Сообщений: 75
27.03.2013, 17:37  [ТС] 13
Мог бы просто сказать, что это unreal.
Ладно, тема закрыта.
0
2577 / 2250 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
27.03.2013, 18:55 14
Вы себе не придумали задачу и предъявляете тут ещё претензии, ССЗБ?
0
5 / 5 / 2
Регистрация: 12.10.2011
Сообщений: 75
28.03.2013, 00:10  [ТС] 15
Что такого в том, что я задал несколько вопросов? И какие еще претензии? Успокойся
0
2577 / 2250 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
28.03.2013, 01:02 16
Цитата Сообщение от Ivan Fantom Посмотреть сообщение
Успокойся
Я и не нервничал малыш, это у тебя с кОрсовой проблемы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2013, 01:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Написал скрипт для поиска дубликатов файлов, как ёё можно улучшить
Написал программу для поиска дубликатов файлов, как ёё можно улучшить, не упустил ли я какие-то не...

Проверки целостности данных
Здравствуйте, как в таблице записать проверки: дата рождения содержит следующие проверки - дата не...

Как сохранить результат проверки целостности архива?
Vovan-VE, Вот еще вопрос не по теме, но не получается по заданию надо: Предусмотреть проверку...

Утилита автоматизированной проверки документа
Утилита автоматизированной проверки документа. Программа должна проверять документ на наличие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.