Страница 2 из 2

Добавлено: 07 сен 2006, 18:24
ajkj3em
sobomax писал(а):
vg писал(а):
sobomax писал(а):Не изобретайте велосипед - используйте стандартные алгоритмы хеширования типа MD5. Там правда длина хеша - 16 байт то есть 32 hex символа, но можно спокойно взять только первых 16.

-Maxim
Чтобы спокойно взять, надо иметь доказательство, что любая 64 битная последовательность часть 128 битного хеша MD5 являтется однозначным отображением хешируемого значения. Упоминания такого уникального свойсва MD5 я не встречал. Впрочим сейчас так и сделал. Дополнительно проверяю коллизии. Для "партнёров" это ОК, как оказалось.
Никто не говорит что оно однозначное. Но предполагая равномерное распределение значений хеша, при скорости выборки 1000 значений в секунду потребуется почти 600 миллионов лет чтобы "поймать" коллизию. Боюсь не доживем. :lol:

(2**64)/(1000*60*60*24*365)

-Maxim
наверное все-таки зависит от модели подбора коллизий, не ?
http://www.infosec.sdu.edu.cn/paper/md5-attack.pdf

Добавлено: 07 сен 2006, 18:27
sobomax
ajkj2em писал(а):наверное все-таки зависит от модели подбора коллизий, не ?
http://www.infosec.sdu.edu.cn/paper/md5-attack.pdf
Разницу между специальным алгоритмом подборки основанным на особенностях данной функции и простым использованием в качестве хеш функции вы я надеюсь понимаете? Мы говорим о втором.

-Maxim

Добавлено: 07 сен 2006, 20:36
sz
Marmot писал(а):
dima писал(а):Сгенерируй GUID, перевери его в строку и посчитай MD5 этой строки.
Эх, сейчас вот придёт Зотин и научит нас всех процессорные циклы экономить :evil:
Я бы научил, но имея дело с xml - это совершенно бесполезное занятие. Все пожрет прожорливый парсер.

Добавлено: 07 сен 2006, 20:54
Marmot
Старина Зотин писал(а): Я бы научил, но имея дело с xml - это совершенно бесполезное занятие. Все пожрет прожорливый парсер.
Ну от парсера можно абстрагироваться, интересно всё-ж таки как это сделать по-настоящему, по-игрушечному, экономно и со вкусом :)