MD5 и AddSlashes...

codsteep

Новичок
MD5 и AddSlashes...

Появилось два вопроса:
По поводу md5() - возвращает 32значный хэш строки....
Т.е.
PHP:
$a="12345";
$c=md5($a);
$c всегда будет равна 827ccb0eea8a706c4c34a16891f84e7b?
Второе... если я получаю пароль POSTом, а потом его хэш, и сверяю, его с хэшем из БД, то добовлять слэши не к чему? По другому md5() возвращает только цифры и буквы?
 

Фанат

oncle terrible
Команда форума
$c всегда будет равна 827ccb0eea8a706c4c34a16891f84e7b?
скажи мне, милый ребенок, в каком ухе у меня ж... ой!
скажи, какую ты видишь пользу в этой функции, если она будет возвращать РАЗНЫЕ хэши?, т.е. $c не всегда будет равна 827ccb0eea8a706c4c34a16891f84e7b?

md5() возвращает только цифры и буквы?
да

-~{}~ 18.05.04 09:39:

добовлять слэши ни к чему?
да.
а вот проверить - не добавил ли пхп и убрать - обязательно
 

codsteep

Новичок
2Фанат
"а вот проверить - не добавил ли пхп и убрать - обязательно" - ну это естественно...Точнее не придётся.... magic_quotes - принудительно = 0...
По поводу первого... ну в общем этого я и ждал/надеялся и верил... ПРосто млин...По поводу невозможности рассшифровки
md5, получается, что его легко можно подобрать по словарю... Правда словарь не маленький нужен будет...

-~{}~ 18.05.04 09:47:

2Фанат, спасибо большое за ответ.
 

Фанат

oncle terrible
Команда форума
Точнее не придётся.... magic_quotes - принудительно = 0
не зарекайся.
По поводу невозможности рассшифровки
md5, получается, что его легко можно подобрать по словарю
забавно.
то есть, если бы он менялся, то подобрать невозможно было бы.
а то, что пользоваться им нельзя бдудет - это мелочи?
тогда рекомендую тебе вместо пароля писать случайное число
надежнее не придумаешь.
 

codsteep

Новичок
а то, что пользоваться им нельзя бдудет - это мелочи?, ну вот именно это меня и смущало... потому и спросил :)

-~{}~ 18.05.04 10:14:

"Точнее не придётся.... magic_quotes - принудительно = 0
не зарекайся." Ну я ведь проверяю...
 

valyala

Новичок
По поводу невозможности рассшифровки md5, получается, что его легко можно подобрать по словарю... Правда словарь не маленький нужен будет...
Во-первых, криптографическая хэш-функция md5 - однонаправленная. Это означает, что невозможно однозначно восстановить исходные данные по их хэшу. Существует бесконечное число различных строк, имеющих одинаковый хэш (такие строки назваются коллизиями).
Во-вторых, т.к. хэш md5 128-битный, то всего существует 2^128 = 340282366920938463463374607431768211456 различных значений хэшей, генерируемых md5. Так что, даже если наша цель - найти строку, хэш которой равен заданному (найти коллизию), то придется изрядно попотеть :)

если я получаю пароль POSTом, а потом его хэш, и сверяю, его с хэшем из БД, то добовлять слэши не к чему?
codsteep, уточни, откуда ты получаешь хэш: генерируешь из полученного пароля или получаешь от пользователя?
 

korvin0

моська
valyala
Но если строк для одного хеша много, то и подобрать их легче, чем если бы была одна. Не понимаю!

-~{}~ 19.05.04 15:50:

понял! сори за флейм
 

valyala

Новичок
Но если строк для одного хеша много, то и подобрать их легче, чем если бы была одна. Не понимаю!
Хэш-фукнция преобразует строки любой длины в строки фиксированной длины. Как говорилось выше для 128-битной md5 существует 2^128 различных значений хэша. Допустим, мы хэшируем строки длиной 32 байта (256 бит). Всего различных строк такой длины - 2^256. А теперь объянси, каким образом получить взаимно-однозначное соотвествие между множеством строк мощностью 2^256 и множеством хэшей мнощностью 2^128 (т.е. сделать так, чтобы каждому хэшу длиной 16 байт соотвествовала лишь единственная строка длиной 32 байт).

Хэш-фукнция md5 предполагается криптографически стойкой (до сих пор не доказано обратное). Это означает, что трудоемкость поиска строки для известного хэша сопоставима с трудоемкостью перебора 2^128 различных вариантов строк.
 

codsteep

Новичок
2valyala, при регистрации получаю хеш, заношу его в базу, при логине делаю $a=md5($_POST['pwd']), сверяю $a с тем что хранится в базе, если совпадает, вешаю плюшку с хешем... и id По ней сверяю пользователя в дальнейшем...
А что?
 

valyala

Новичок
Откуда при регистрации берется хэш? Сам генерируешь из пароля? Или этот хэш пользователь присылает?
Что значит "вешаю плюшку с хешем"? куда ты ее вешаешь?
 

codsteep

Новичок
2valyala, при регистрации пользователь вбивает в форму например "12345", делаю md5("12345"), и получившееся значение заношу в базу, дальше когда он логинится повторяю, и сверяю получившееся значение с тем что хранится в базе.
"Что значит "вешаю плюшку с хешем"? куда ты ее вешаешь?" - А куда её можно вешать?! плюшка=cookie. Раземеется пользователю который прошёл авторитизацию.
 
Сверху