sobomax писал(а):Не изобретайте велосипед - используйте стандартные алгоритмы хеширования типа MD5. Там правда длина хеша - 16 байт то есть 32 hex символа, но можно спокойно взять только первых 16.
-Maxim
Чтобы спокойно взять, надо иметь доказательство, что любая 64 битная последовательность часть 128 битного хеша MD5 являтется однозначным отображением хешируемого значения. Упоминания такого уникального свойсва MD5 я не встречал. Впрочим сейчас так и сделал. Дополнительно проверяю коллизии. Для "партнёров" это ОК, как оказалось.
Никто не говорит что оно однозначное. Но предполагая равномерное распределение значений хеша, при скорости выборки 1000 значений в секунду потребуется почти 600 миллионов лет чтобы "поймать" коллизию. Боюсь не доживем.
Разницу между специальным алгоритмом подборки основанным на особенностях данной функции и простым использованием в качестве хеш функции вы я надеюсь понимаете? Мы говорим о втором.