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