Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > MD5


Автор: RaZoR 27.1.2005, 21:55
Здравствуйте. Я так понимаю результат выполнения функции md5($sting) можеть быть один для разных $string, так? Так вот, меня интересует какова вероятность этого совпадения для разных длин $string. Если длина строки $string равна одному символу, то совпадения быть не может, так? так вот, а если к примеру длина строки 32 символа, то тогда какая вероятность? Спасибо.

Автор: Mal Hack 27.1.2005, 22:00
Длина входящей строки тут не при чем...
md5 може выдать 36 в 32 степени различных комбинаций, вот и считай какая вероятность.

Автор: IZ@TOP 27.1.2005, 22:06
Насчет вероятности совпадения хеша при большой длинее строки думаю возрастает неоднократно, но не на столько чтобы приблизиться к очень большой вероятности.
Вообще по теме тебе нужно наверное RFC почитать - http://rfc.net/rfc1321.html .

Автор: Irokez 27.1.2005, 22:11
Цитата(Mal @ 27.1.2005, 22:00)
Длина входящей строки тут не при чем...
md5 може выдать 36 в 32 степени различных комбинаций, вот и считай какая вероятность.

разве не 16 в 32-й степени?
0 1 2 3 4 5 6 7 8 9 A B C D E F ?

Автор: Mal Hack 27.1.2005, 22:17
Цитата(Irokez @ 27.1.2005, 22:11)
разве не 16 в 32-й степени?

26 букв латинскго алфавита + 10 цифр = 36 и все это может повториться по 32 раза...

Автор: Irokez 27.1.2005, 22:23
Цитата(Mal @ 27.1.2005, 22:17)
Цитата(Irokez @ 27.1.2005, 22:11)
разве не 16 в 32-й степени?

26 букв латинскго алфавита + 10 цифр = 36 и все это может повториться по 32 раза...

здрасьте, там же не буквы, а цифры - шестнадцатиричной системы исчисления

Автор: Mal Hack 27.1.2005, 22:37
Да... сорри, ошибался...

Автор: penizillin 28.1.2005, 15:01
правильно. вот цитата из одной интересной статьи на эту тему:
Цитата
This astonishing fact is due to the astonishingly large number of possible hashes available: a 128-bit hash can have 3.4 x 10^38 possible values, which is:

340,282,366,920,938,463,463,374,607,431,768,211,456 possible hashes

If the hash algorithm is properly designed and distributes the hashes uniformly over the output space, "finding a hash collision" by random guessing is exceedingly unlikely (it's more likely that a million people will correctly guess all the California Lottery numbers every day for a billion trillion years).


плюс (для наглядности):
http://www.unixwiz.net/images/real-collision.gif
http://eprint.iacr.org/2004/199.pdf

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)