Я создаю систему, которая должна быть в состоянии найти, если обновлено blobs байтов. Вместо того, чтобы хранить весь блок (они могут быть до 5 МБ), я думаю, что я должен вычислить контрольную сумму, сохранить это и вычислить одну и ту же контрольную сумму немного позже, чтобы узнать, обновлен ли блог.
Цель состоит в том, чтобы свести к минимуму следующее (в этом порядке):
- размер контрольной суммы
- время для вычисления
- вероятность столкновений (2 идентичные контрольные суммы происходят, даже если содержимое было изменено).
Для нашей системы приемлемо иметь столкновение не более 1/1 000 000. Проблема заключается не в безопасности, а просто при обновлении/обнаружении ошибок, поэтому редкие столкновения в порядке. (Вот почему я старался свести к минимуму).
Кроме того, мы не можем самостоятельно изменять кадры текста.
Конечно, md5
, crc
или sha1
приходят на ум, и если бы я хотел быстрое решение, я бы пошел на это. Однако, более чем быстрое решение, я ищу, что может быть сравнение различных методов, а также плюсы и минусы.