Контрольная сумма и хэш в основном совпадают. Вы должны быть в состоянии вычислить любой вид хэша. Обычного MD5 обычно достаточно. Если хотите, вы можете сохранить размер и хэш md5 (я думаю, что это 16 байт).
Если два файла имеют разные размеры, это разные файлы. Вам даже не нужно будет вычислять хеш по данным. Если маловероятно, что у вас много дублирующихся файлов, а файлы имеют больший размер (например, изображения JPG, сделанные с помощью камеры), эта оптимизация может сэкономить вам много времени.
Если два или более файлов имеют одинаковый размер, вы можете рассчитать хеш-коды и сравнить их.
Если два хэша одинаковы, вы можете сравнить фактические данные, чтобы увидеть, все ли они отличаются. Это очень, очень маловероятно, но теоретически возможно. Чем больше ваш хеш (md5 составляет 16 байт, а CR32 - только 4), тем меньше вероятность того, что два разных файла будут иметь одинаковый хеш.
Для выполнения этой дополнительной проверки потребуется всего 10 минут программирования, поэтому я бы сказал: лучше, чем потом сожалеть. :)
Для дальнейшей оптимизации, если ровно два файла имеют одинаковый размер, вы можете просто сравнить их данные. Вам все равно нужно будет прочитать файлы, чтобы вычислить их хэши, так почему бы не сравнить их напрямую, если они единственные с таким конкретным размером.