Файл проверки Java - PullRequest
       33

Файл проверки Java

1 голос
/ 05 декабря 2011

В настоящее время у меня есть сервер, к которому могут подключиться 2 клиента.У обоих этих клиентов на жестком диске есть текстовый файл, который программа читает сразу после запуска.Этот текстовый файл должен содержать ТОЧНЫЕ одинаковые данные (это просто текст) на обоих клиентах (которые должны быть проверены сервером), иначе сервер может не обслуживать клиентов.

Мне интересно, как это сделать правильно,Что я должен делать?Рассчитать хеш-код или использовать MD5 / SHA1 / SHA2 для чего-то подобного?Должен ли я сначала прочитать файл и вычислить хеш-код для созданных объектов или рассчитать MD5 непосредственно для файла?

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 декабря 2011

Чтобы быть действительно, действительно , вы должны передать содержимое обоих текстовых файлов на сервер и сравнить их как строки.

Для всех практических целей вы можете вычислитьхэш-код и сравнить это значение на сервере.Взгляните на класс FileUtil в Apache Commons.Он определяет метод checksumCRC32(File file), который вы можете использовать для вычисления контрольной суммы для файла.Если контрольная сумма для обоих файлов одинакова, содержимое можно считать равным.Вероятность того, что они отличаются, тем не менее, составляет 1/2 ^ 32.

0 голосов
/ 05 декабря 2011

Вы можете легко вычислить хеш файла, используя DigestUtils от Apache Commons. У него есть хорошие методы для вычисления хэшей, будь то MD5 или SHA1. Затем просто сравните хэши файлов для каждого клиента.

Кроме того, вы должны знать, что точные хэши не гарантируют 100% идентичности файлов. Это будет очень редкая ситуация, когда файлы не идентичны, учитывая, что их хэши равны. Однако, в зависимости от того, является ли это определение критическим в вашем приложении, вам, возможно, придется сравнивать файлы побайтно, когда хэши равны, чтобы убедиться, что они точно содержат данные.

...