Могут ли две разные строки генерировать один и тот же хэш-код MD5? - PullRequest
86 голосов
/ 18 ноября 2009

Для каждого из наших двоичных активов мы генерируем хеш MD5. Это используется для проверки, есть ли определенный бинарный актив в нашем приложении. Но возможно ли, что два разных бинарных ресурса генерируют один и тот же хеш MD5. Так возможно ли, что две разные строки генерируют один и тот же хеш MD5?

Ответы [ 11 ]

1 голос
/ 02 февраля 2016

Я думаю, что мы должны быть осторожны при выборе алгоритма хеширования в соответствии с нашим требованием, поскольку коллизии хэшей не так редки, как я ожидал. Недавно я обнаружил очень простой случай столкновения хэшей в моем проекте. Я использую оболочку Python xxhash для хеширования. Ссылка: https://github.com/ewencp/pyhashxx

s1 = 'mdsAnalysisResult105588'
s2 = 'mdsAlertCompleteResult360224'
pyhashxx.hashxx(s1) # Out: 2535747266
pyhashxx.hashxx(s2) # Out: 2535747266

Это вызвало очень сложную проблему с кэшированием в системе, а потом я обнаружил, что это коллизия хешей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...