Я делаю презентацию о столкновениях MD5 и хочу дать людям представление о вероятности столкновения.
Было бы хорошо иметь два блока текста, которые хэшируют одну и ту же вещь, и объяснить, сколько комбинаций [a-zA-Z] было необходимо, прежде чем я столкнусь с коллизией.
Очевидный ответ - хэшировать каждую возможную комбинацию, пока два хэша не попадут в одно и то же. Итак, как бы вы пошли о кодировании этого. В качестве быстрого эксперимента я попытался хэшировать каждую комбинацию из 5 столбцов [A-Z], сохраняя ее в хеш-таблице .net и перехватывая исключение коллизий. Две проблемы с этим - хэш-таблица в конце концов истекает, и я почти уверен, что мне понадобится ОЧЕНЬ больше символов.
Очевидно, что эта структура данных слишком велика, чтобы обрабатывать ее в памяти, поэтому теперь мне нужно подключить базу данных. Также звучит как хороший проект для тестирования лазури - немного похоже на этих парней .
Может ли кто-нибудь направить меня в направлении эффективного способа сделать это?