Я разрабатываю приложение для файлового сервера, в котором я хочу проверить, является ли кешированный файл на клиентском компьютере последней версией, хранящейся на сервере.
Я не совсем доверяю атрибуту «измененная дата» в файловой системе, поэтому хочу сравнить фактические байты в файле.
Я думаю, что самый быстрый способ сделать это (поскольку отправка всех байтов через Интернет занимает некоторое время) - это отправить на сервер длину файла и байты хэша. Затем сервер сначала проверяет длину файла и, если они совпадают, вычисляет хэш для файла, расположенного на сервере, а затем проверяет, совпадает ли он с тем, который вычислил клиент.
Может ли кто-нибудь сказать мне, насколько вероятны хеш-коллизии при одинаковом размере файла? (В настоящее время я использую MD5 для его скорости).
Могу ли я предположить, что если размер файла такой же, а хеш такой же, то и содержимое такое же?
Спасибо!