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