Проверка целостности файла - PullRequest
1 голос
/ 02 марта 2011

У нас есть большие наборы (более 10) очень больших файлов (> 1 ГБ), которые мы совместно используем в нашей сети. Есть также несколько небольших файлов.

Несмотря на это, мы хотим убедиться, что эти файлы верны после передачи. Поэтому я думаю, что я мог бы просто создать инструмент, который вычисляет несколько различных хешей (SHA1 и MD5, возможно, также CRC32) и сохраняет их в файле метаданных. Тот, кто находится на принимающей стороне, может проверить файлы с помощью инструмента.

Должен ли я быть обеспокоен тем, что, учитывая размер файлов, возможно, что поврежденный файл вызовет столкновение с исходным файлом? Я не беспокоюсь о том, что кто-то намеренно вызовет столкновение.

В этом случае использование bittorrent также является опцией, так как он вычисляет SHA1 для гораздо меньших кусков (от нескольких КБ до нескольких МБ). Еще одним плюсом является то, что он будет даже обрабатывать передачу данных. Но это также добавляет неудобство, потому что один и тот же кусок может принадлежать разным файлам - в этом случае вам нужны «соседи» файла, чтобы проверить это. Конечно, я мог бы добавить пустышку, но теперь я все усложняю.

Я знаю, что 2 ^ 80 и даже 2 ^ 64 - довольно большие числа, и что хэши предназначены для "лавинного эффекта", так что, возможно, я просто немного параноик.

Ответы [ 2 ]

1 голос
/ 02 марта 2011

Лучше всего использовать утилиту, специально предназначенную для копирования больших файлов, например, Robocopy или Teracopy.

В дополнение к проверке целостности файлов, эти утилиты также устраняют надоедливые случаи, когда копии прерываются из-за неожиданного появления диалоговых окон файлов Проводника Windows.

0 голосов
/ 19 июля 2012

Новая версия Ultracopier может сделать это тоже.

Видео презентации показывает отключение и возобновление работы после отключения, а целостность файла правильная.

Ultracopierта же партия механизма защиты данных.

...