[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Восстановление/обновление пароля
andrey888
Доброго времени суток. Вопрос к тем кто сталкивался.
Какой алгорит восстановления пароля лучше.
----алгоритм 1.
а - юзер заполняет поле логин и имейл.
б - ищем в базе совпадение.
в - если совпадение найдено меняем пароль для него в базе и высылаем на имейл копию нового пароля с просьбой зайти на свой аккаунт и изменить новый пароль на что нибудь более подходящее.
----алгоритм 2.
а - юзер заполняет поле логин и имейл.
б - ищем в базе совпадение.
в - если совпадение найдено создаем новый рандомальный пароль.
г - записываем в сиссию новый пароль, ip юзера, уникальный номер юзера в базе.
д - высылаем на имейл ссылку из серии : website.com?newpas=Hlk73bjhdhyd7302nwkl
е - при возвращении юзера по ссылке проверяем newpas с тем что записано в сессии, проверяем ip, если все отлично меняем его пароль в базе и высылаем на имейл копию.

Все пароли прогоняютмся через md5 в уже подсоленом состоянии.

Возможно у кого то есть иные алгоритмы. Спасибо.



Спустя 6 минут, 26 секунд (7.03.2012 - 13:15) Visman написал(а):
Не надо отправлять все это автоматом.
Делаю ссылочку Забыли пароль?. Вот там юзер уже может запросить пароль на восстановление.

Спустя 3 минуты, 10 секунд (7.03.2012 - 13:19) andrey888 написал(а):
Visman . Дак это понятно...
То же самое "Забыли пароль?" - переходим на страницу где уже и происходит все что написано выше. Вопрос в том какой алгоритм действий лучше.

Спустя 3 минуты, 10 секунд (7.03.2012 - 13:22) Visman написал(а):
1. Отсылаем юзеру новый пароль и ссылку для его активации. Хэш пароля и ссылку записываем в базу.
2. При приходе по ссылке отосланной в письме сохраненный кэш пароля копируем в основной хэш пароля.
3. Просим зайти юзера на сайт с новым паролем.
ph34r.gif

Спустя 6 минут, 9 секунд (7.03.2012 - 13:28) andrey888 написал(а):
А ссылку зачем в базу записывать ? можно для этого использовать сессии .. ай пи и так далее .. для проверки что это тот же самый юзер..

Спустя 7 минут, 47 секунд (7.03.2012 - 13:36) Visman написал(а):
Цитата (andrey888 @ 7.03.2012 - 18:28)
А ссылку зачем в базу записывать ?

Не записывай, генерируй ее из хэша нового пароля+соль и через sha1

Цитата (andrey888 @ 7.03.2012 - 18:28)
можно для этого использовать сессии

20 минут или 24 и выкл wink.gif

Спустя 4 часа, 45 минут, 43 секунды (7.03.2012 - 18:21) andrey888 написал(а):
Ты имеешь ввиду при изменении пароля записывать sha1(хеш + соль) в дополнительное поле в БД . этому юзеру .. и посылать ссылку с этим же .. после того как юзер из почты переходит по этой ссылки - сверяем хеш из ссылки с тем что было записано в БД , если все ок - меняем пароль и посылаем ему копию.. (либо даем поменять собственноручно на новый)
Я правильно понял тебя ?

Спустя 18 минут, 56 секунд (7.03.2012 - 18:40) Visman написал(а):
Маленько не так.
В дополнительное поле базы записываешь хэш нового пароля - md5(новый пароль + соль)
А юзеру отправляешь пароль и ссылку сгенерированную с нового хэша - sha1(новый хэш+соль2).
При приходе же юзера по ссылке сверяешь ее с формулой sha1(новый хэш+соль2)

Т.е. в ссылках хэш пароля не участвует, участвует хэш хэша пароля.

Спустя 16 минут, 50 секунд (7.03.2012 - 18:57) andrey888 написал(а):
да да .. именно тоже самое имел ввиду , просто не правильно пояснил.
пойду этой дорогой .. так подумал - такой метод действителньо лучше чем сиссии куки либо автоматическая замена пароля и постановка юзера перед фактом что он уже изменен.. получите, распишитесь )).
Спасибо за респонс)

Спустя 14 часов, 42 минуты, 14 секунд (8.03.2012 - 09:39) andrey888 написал(а):
Сделал еще проще.
При запросе на восстановление пароля -
Записываем рандомальный хеш хеша в базу md5(rand + соль) через sha1(хеш + соль2)
Юзеру отправляю ссылку с первоначальным хешом md5(rand + соль)
При переходе юзера сверяю хеш в ссылке через формулу sha1(хеш + соль2) с тем что в базе
Если все гуд - выводим форму для заполнения нового пароля.

То есть никаких новых паролей не отправляем по мылу - просто вводим для запросившего идентификатор чтоб знать что для него нужно вывести форму нового пароля.


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.