У нас есть большие наборы (более 10) очень больших файлов (> 1 ГБ), которые мы совместно используем в нашей сети. Есть также несколько небольших файлов.
Несмотря на это, мы хотим убедиться, что эти файлы верны после передачи. Поэтому я думаю, что я мог бы просто создать инструмент, который вычисляет несколько различных хешей (SHA1 и MD5, возможно, также CRC32) и сохраняет их в файле метаданных. Тот, кто находится на принимающей стороне, может проверить файлы с помощью инструмента.
Должен ли я быть обеспокоен тем, что, учитывая размер файлов, возможно, что поврежденный файл вызовет столкновение с исходным файлом? Я не беспокоюсь о том, что кто-то намеренно вызовет столкновение.
В этом случае использование bittorrent также является опцией, так как он вычисляет SHA1 для гораздо меньших кусков (от нескольких КБ до нескольких МБ). Еще одним плюсом является то, что он будет даже обрабатывать передачу данных. Но это также добавляет неудобство, потому что один и тот же кусок может принадлежать разным файлам - в этом случае вам нужны «соседи» файла, чтобы проверить это. Конечно, я мог бы добавить пустышку, но теперь я все усложняю.
Я знаю, что 2 ^ 80 и даже 2 ^ 64 - довольно большие числа, и что хэши предназначены для "лавинного эффекта", так что, возможно, я просто немного параноик.