php mysql пароль
В системе, написанной на php, используется регистрация пользователей. Каки образом можно наиболее безопасно хранить в базе пароль?
Цитата:
Originally posted by Libarus
В системе, написанной на php, используется регистрация пользователей. Каки образом можно наиболее безопасно хранить в базе пароль?
В системе, написанной на php, используется регистрация пользователей. Каки образом можно наиболее безопасно хранить в базе пароль?
Код:
md5()
Например:
INSERT INTO users SET login='mike', password=password('mike');
я этот способ стараюсь не использовать, так как результат функции password может быть разным в разных ОС и у разных версия MySql - теряется переносимость
[phpdoc]md5[/phpdoc] - очень хороший вариант, я его использую.
и сравнение идет таким образом: pass==md5(password). Правильно я понял?
А нельзя ли зная pass, найти password?
На сколько md5 труден в открытии?
Цитата:
Originally posted by Libarus
Если использовать ф-ию шифровки строки md5, то она шифрует строку, т.е. pass=md5(password);
и сравнение идет таким образом: pass==md5(password). Правильно я понял?
А нельзя ли зная pass, найти password?
На сколько md5 труден в открытии?
Если использовать ф-ию шифровки строки md5, то она шифрует строку, т.е. pass=md5(password);
и сравнение идет таким образом: pass==md5(password). Правильно я понял?
А нельзя ли зная pass, найти password?
На сколько md5 труден в открытии?
Насколько я знаю, md5 считает контрольную сумму (hash) строки. А из нее строку получить нельзя :(
md5($pass)==$saved_hash.
Но эту коллизию получить, если пароль длинный очень сложно. Я пытался расшифровать пассы из shadow файла, расшифровывал трое суток, так и не расшифровал, на более терпения не хватило.Скажу более, MD5, наиболее прогрессивный метод получения hash на сегодняшний момент.
Цитата:
Originally posted by MishaSt
Скажу более, MD5, наиболее прогрессивный метод получения hash на сегодняшний момент.
Скажу более, MD5, наиболее прогрессивный метод получения hash на сегодняшний момент.
Единогласно 8)
Спасибо за разъеснения!!!
И вот собственно сам вопрос, каким образом разрешить такую ситуацию, если пароль храниться в предлагаемом зашифрованном виде?
Цитата:
Originally posted by ReDrum
Случается, что пользователи забывают свои пароли.
И вот собственно сам вопрос, каким образом разрешить такую ситуацию, если пароль храниться в предлагаемом зашифрованном виде?
Случается, что пользователи забывают свои пароли.
И вот собственно сам вопрос, каким образом разрешить такую ситуацию, если пароль храниться в предлагаемом зашифрованном виде?
Зачем тебе старый пароль? Поменяй его на новый :D
Цитата:
Originally posted by view
Зачем тебе старый пароль? Поменяй его на новый :D
Зачем тебе старый пароль? Поменяй его на новый :D
????
Кто его менять будет??? Каким образом????
Цитата:
Originally posted by ReDrum
????
Кто его менять будет??? Каким образом????
????
Кто его менять будет??? Каким образом????
Пользователь сообщает тебе об утрате пароля. Ты пароль ему меняешь и высылаешь на мыло.
Цитата:
Originally posted by ReDrum
Случается, что пользователи забывают свои пароли.
И вот собственно сам вопрос, каким образом разрешить такую ситуацию, если пароль храниться в предлагаемом зашифрованном виде?
Случается, что пользователи забывают свои пароли.
И вот собственно сам вопрос, каким образом разрешить такую ситуацию, если пароль храниться в предлагаемом зашифрованном виде?
Обычно, если пароль хранится в зашированном виде, с использованием одностороннего ширования, то при восстановлении генерируется новый пароль и отправляется по почте, а его хеш записывается в базу.
select * from ss_users
where login = '$login'
and password = md5('password');
но почему то результатом запроса является 0 :( чего я не так сделал..
можт сравнения паролей я не правильно делаю.. ? ПАМАГИТЕ СРОЧНО!
А пользователь то такой есть?
а может >>$password << ?
У меня атрибут password имел длину 16 знаков, а мд5 кодируетв 32 знака.. Поэтому в таблицу заносились урезанные значения паролей,а когда я вызывал их он просто не смог их сравнить 16 знаков и 32 =)