Вот хорошая оценка "реального мира" CRC-N
http://www.backplane.com/matt/crc64.html
Я использую CRC-32 и сравнение размеров файлов и НИКОГДА не проверяю совпадения CRC-32 и File-Size при проверке миллиардов файлов. Но я знаю, что некоторые существуют, когда не намеренно вынуждены существовать. (Взломанные трюки / подвиги)
При выполнении сравнения вы должны также проверять «размеры данных». У вас редко будет коллизия одного и того же размера данных с соответствующим CRC в правильных размерах.
Преднамеренно манипулировать данными, чтобы подделать совпадение, обычно делается путем добавления дополнительных данных до тех пор, пока CRC не достигнет цели. Однако это приводит к тому, что размер данных больше не соответствует. Попытка перебора или циклического перебора случайных или последовательных данных одного и того же точного размера приведет к реальной узкой частоте столкновений.
Вы также можете столкнуться в пределах размера данных, просто с помощью общих ограничений используемых формул и ограничений использования битов / байтов и систем с десятичной базой, которые зависят от значений с плавающей запятой, которые усекаются и обрезаются .
Точка, о которой вы хотели бы подумать о расширении, - это когда вы начинаете видеть множество коллизий, которые нельзя «подтвердить» как «оригиналы». (Когда они оба имеют одинаковый размер данных, и (при тестировании в обратном направлении они имеют соответствующий CRC. Обратный / байтный или обратный / битовый, или смещение битов)
В любом случае его НИКОГДА не следует использовать в качестве ЕДИНСТВЕННОЙ формы сравнения, просто для быстрой формы сравнения, для индексации.
Вы можете использовать CRC-8 для индексации всего интернета и деления всего на одну из N-категорий. Вы ХОТИТЕ тех столкновений. Теперь, с этими предварительно отсортированными, вам нужно только проверить один из N-каталогов, ища «размер файла» или «обратный CRC», или любое другое сравнение, которое вы можете сделать с этим меньшим набором данных, быстро. ..
Выполнение CRC-32 вперед и назад на одном и том же блоке данных более надежно, чем использование CRC-64 только в одном направлении. (Или MD5, если на то пошло.)