1) Нужно ли беспокоиться о коллизиях контрольной суммы?
Я планирую использовать MD5 для расчета
Существует разница между контрольной суммой (например, crc32) и криптографическим хэшем. Криптографический хеш предназначен для защиты от столкновений.
Это означает, что использование хэша может быть лучшим вариантом, который у вас есть. Вероятность столкновения очень низкая, может быть незначительная, математически все еще выше нуля.
Я планирую использовать MD5 для вычисления хэша - есть ли более быстрые способы сделать это? Существуют ли алгоритмы, которые я должен рассмотреть по другим причинам?
MD5 быстр, но больше не безопасен. Хеш был сломан, и существуют быстрые методы для получения нескольких входных данных, которые приводят к одному и тому же хэш-результату Стандарт, используемый сегодня для хэша, это sha-256 (Пока вы не используете md5 в качестве контрольной суммы, не касающейся преднамеренных коллизий, вы можете быть в порядке. Независимо от того, что вам следует избегать криптопримитивов, которые считаются устаревшими)