Показать сообщение отдельно

  #10  
Старый 26.06.2008, 23:54
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Цитата:
Сообщение от geezer.code  
спасибо ... теперь вроде уловил.
значит если нагенерить 2^64+1 хэшей то получим минимум одно совпадение.
а скока на это понадобится места ?
Нет, если нагенерить 2^32 хэшей MySQL(64) то с 50% вероятностью мы получим одно совпадение, в этом и есть парадокс Дней рождения.
Считаем просто:
Пароль из диапазона 2^64 занимает 8 байт, хэш столько же + 4 байта (символ разделителя, хотя можно и исключить, конец строки и перевод каретки)
Вообщем на запись тратится не более 20 байт.
всего надо 2^32 = 4294967296 записей. умножаем на 20 байт = 85899345920 байт = 83886080 Кбайт = 81920 Мб. = 80 Гб. На современном винте 4-6 таких таблиц спокойно поместится, так что найти коллизии MySQL(64) реально и даже не одну...
 
Ответить с цитированием