|
|
|
| Господа пхпшники, подскажите простую хэш-функцию.
Требования: принимает что угодно, возвращает ЧИСЛО. И только число. Никаких букв или спецсимволов. Есть ли такое вообще? | |
|
|
|
|
|
|
|
для: SHAman
(13.03.2008 в 21:29)
| | Может тогда просто метку времени брать? | |
|
|
|
|
|
|
|
для: Nemezis
(13.03.2008 в 21:38)
| | Нужна именно хэш-функция. Или алгоритм, хотя бы название.
Дана строка. Нужно перевести ее в число так, чтобы свести вероятность совпадения чисел у двух разных строк к пренебрежимо малой величине.
Можно было б брать коды символов, но для этого придется лопатить слово как массив, а это долго и не красиво. Хочу красивую функцию) | |
|
|
|
|
|
|
|
для: SHAman
(13.03.2008 в 21:46)
| | то что сразу в голову пришло
$fr=md5("testtest");
echo hexdec(substr($fr, 1, 5));
|
или это не то?:)
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(14.03.2008 в 01:07)
| | Хэш числовой? Коллизии будут на каждой второй строке!
Если у MD5 который возвращает 32 символа часто бывают совпадения, то что говорить о только цифрах. Еще и размер (кол-во символов) не определен, нужно определять как строку и делать длину 256-512 символов, а если как число определять, то это никуда не сгодится | |
|
|
|
|
|
|
|
для: Петр
(14.03.2008 в 06:14)
| | Да, подумал, и понял, что нереально вот так просто, без коллизий закодировать строку числом. Что ж, придется юзать ord.
Всем спасибо. | |
|
|
|
|
|
|
|
для: SHAman
(14.03.2008 в 09:52)
| | Кхм, md5 как раз и представляет собой 128-битное шестнадцатиричное число. А шанс выпадения коллизии настолько мал, что и говорить о нём как-то не очень прилично. "Всего-то" нужно перебрать 2^128 вариантов, чтобы гарантированно найти коллизию. | |
|
|
|
|
|
|
|
для: SHAman
(13.03.2008 в 21:29)
| | А чем вам не угодила
crc32
? | |
|
|
|
|
|
|
|
для: Eugene77
(14.03.2008 в 18:57)
| | Вот. Спасибо большое. То, что надо! | |
|
|
|
|
|
|
|
для: SHAman
(13.03.2008 в 21:29)
| | md5(), CRC32(), crypt(), .... | |
|
|
|
|
|
|
|
для: mihdan
(14.03.2008 в 19:09)
| | мд5 и крипт не подходят, ибо, как я говорил, на выходе должны быть только цифры. | |
|
|
|
|
|
|
|
для: SHAman
(14.03.2008 в 19:22)
| | Со всем уважением, а разве md5 не цифры выводит? Вывод просто в 16СС происходит:), я ж выше указал пример, можно было б и посмотреть;)
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(14.03.2008 в 23:52)
| | Да, тупанул, простите. | |
|
|
|
|
автор: Wunderbar (15.03.2008 в 12:00) |
|
|
для: mihdan
(14.03.2008 в 19:09)
| | mihdan, CRC32 создан для вычисления хеша строки, которая не была специально изменена каким-то образом, а могла быть случайно повреждена. | |
|
|
|
|
|
|
|
для: Wunderbar
(15.03.2008 в 12:00)
| | Да ладно )) А мы и не знали! ))) | |
|
|
|
|
автор: Wunderbar (16.03.2008 в 20:08) |
|
|
для: mihdan
(16.03.2008 в 19:56)
| | Именно так. | |
|
|
|