|
|
|
|
|
для: levsha
(01.08.2008 в 15:20)
| | Тема старая, но всё же интересен один нюанс:
Вариант предложенный levsha более чем хорош, но вот как быть если пользователь не хочет вводить секретный вопрос? Тупо отсылать ему новый пароль или сразу перенаправлять на страницу ввода нового пароля, через ссылку из письма скинутого на e-mail? | |
|
|
|
|
|
|
|
для: levsha
(01.08.2008 в 15:20)
| | А можно по-подробнее. С примером, желательно. А то не совсем понятно.
Никак не могу понять-как лучше осуществить опцию восстановления пароля.
Есть база данных bd с таблицей reg в ней поля login, password, mail.
Пароль сохраняется криптованный md5.
Хэш md5 расшифровать нельзя. Приходится искать варианты.
Если я правильно понимаю логику:
1 Вывожу форму восстановления. Предлогаю пользователю ввести логин или мыло.
2 Проверяю их на соответствие в базе.
3 Если они верны- генерирую новый пароль.
4 Новый пароль хэширую md5 и заменяю старый(в базе) на новый для этого пользователя.
5 Не хэшированную версию отправляю юзеру на мыло.
Позднее юзер в своем профиле сможет сменить пароль на какой он захочет.
Или лучше вариант предложенный levsha двумя постами выше?
Поделитесь опытом. Срочно нужно сделать, а как не могу решить.
Я склоняюсь ко второму(от b]levsha[/b]). Но пока еще не совсем предсталяю код.
Заранее благодарен за помощь. | |
|
|
|
|
|
|
|
для: GeorgeIV
(01.08.2008 в 14:50)
| | Какэто "мыло подменил"? Можно подробней? А если сам сменил, тогда только через администратора. Как по другому? Сгенерированный пароль все равно сообщить както нужно. Мне кажется, что лучше не пугать клиента непонятными "Ваш временный пароль:lhglhliljhv", а написать "Для входа на Вашу страницу воспользуйтесь этой ссылкой" | |
|
|
|
|
|
|
|
для: InfernuS
(01.08.2008 в 14:46)
| | Функция mcrypt_ecb ( int cipher, string key, string data, int mode )
Первый параметр - тип шифрования, например MCRYPT_3DES
Второй ключ - Секретный ответ,
Третий параметр - Данные (в вашем случа пароль),
Четвертый - режим - зашифровать MCRYPT_ENCRYPT или расшифровать MCRYPT_DECRYPT.
В базе данных для пароля создайте два поля.
Первое будет хранить хеш пароля md5.
Второе будет хранить зашифрованный пароль, ключом является секретный ответ (или вопрос - ответ вместе).
Возможный вариант восстановления.
Пользователь вводит секретный ответ, он является ключом к зашифрованному паролю, получаем пароль, далее с него снимаем хеш md5, если этот хеш идентичен хешу в базе данных выдаем пароль, иначе ошибку.
Что не понятно спрашивайте. | |
|
|
|
|
|
|
|
для: Николай2357
(01.08.2008 в 14:38)
| | а если я мыло подменил? или у меня сменилась почта? | |
|
|
|
|
|
|
|
для: GeorgeIV
(01.08.2008 в 14:19)
| | Тогда не понятно, а как это реализуют, например на яндексе или мэйли. Другой алгоритм?
Или они не шифруют когда заносят в базу?
Вообще я слышал, что дешифруются: ГОСТ_28147-89, 3DES и IDEA. Только вот не знаю применяют их в стандартных php кодах или нет?
levsha
Можно поподробнее про функции библиотеки mcrypt. | |
|
|
|
|
|
|
|
для: Николай2357
(01.08.2008 в 14:38)
| | Я не понимаю, зачем Вы хотите передавать текущий пароль в ссылке? Кому от этого легче? Тогда уже сразу скажите его пользователю, а не устраивайте карусель:) | |
|
|
|
|
|
|
|
для: GeorgeIV
(01.08.2008 в 14:19)
| | Ну ведь на мыло ссылка на его личную страницу, там сразу написал новый и все. | |
|
|
|
|
|
|
|
для: Николай2357
(01.08.2008 в 14:12)
| | Зачем на мыло отправлять? На сайтах есть ссылочка - "Забыли пароль?", которая едет на страницу восстановления пароля | |
|
|
|
|
|
|
|
для: Николай2357
(01.08.2008 в 10:53)
| | Боюсь опять напартачить, подскажите, где тут тонко?
Придумал я такой компромисс: Нужно на мыло юзеру отправлять не сам сгенерированный новый пароль, а ссылку плана
<a href='страница восстановления?pass=абракадабра'>пройдите, восстановите</a>,
| а там пусть пишет свое, родное.
Спасибо. | |
|
|
|
|