Какой алгоритм контрольной суммы мне следует использовать?

Я ' Вместо того, чтобы хранить весь blob-объект (они могут составлять до 5 МБ), я думаю, что мне следует вычислить его контрольную сумму, сохранить ее и вычислить ту же контрольную сумму чуть позже, чтобы увидеть, был ли обновлен блог.

Цель состоит в том, чтобы минимизировать следующее (в указанном порядке):

  • размер контрольной суммы
  • время для вычисления
  • вероятности коллизий (2 идентичные контрольные суммы возникают, даже если содержимое было изменено).

Для нашей системы допустимо иметь коллизию не более 1 / 1,000,000. Проблема не в безопасности, а просто в обнаружении обновлений / ошибок, поэтому редкие коллизии допустимы. (Вот почему я помещаю его в последнюю очередь в разделах, которые нужно минимизировать.)

Кроме того, мы не можем сами изменять кляксы текста.

Конечно, md5 , crc или sha1 приходит на ум, и если бы мне нужно было быстрое решение, я бы пошел на это. Однако я ищу более чем быстрое решение, сравнение различных методов, а также их плюсы и минусы .

52
задан Julien Genestoux 20 November 2010 в 04:29
поделиться