Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Восстановления пароля при кодировании функцией md5.

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-45] 

 
 автор: Keyses   (16.07.2009 в 13:24)   письмо автору
 
   для: levsha   (01.08.2008 в 15:20)
 

Тема старая, но всё же интересен один нюанс:
Вариант предложенный levsha более чем хорош, но вот как быть если пользователь не хочет вводить секретный вопрос? Тупо отсылать ему новый пароль или сразу перенаправлять на страницу ввода нового пароля, через ссылку из письма скинутого на e-mail?

  Ответить  
 
 автор: InfernuS   (21.10.2008 в 21:50)   письмо автору
 
   для: levsha   (01.08.2008 в 15:20)
 

А можно по-подробнее. С примером, желательно. А то не совсем понятно.

Никак не могу понять-как лучше осуществить опцию восстановления пароля.
Есть база данных bd с таблицей reg в ней поля login, password, mail.
Пароль сохраняется криптованный md5.
Хэш md5 расшифровать нельзя. Приходится искать варианты.

Если я правильно понимаю логику:
1 Вывожу форму восстановления. Предлогаю пользователю ввести логин или мыло.
2 Проверяю их на соответствие в базе.
3 Если они верны- генерирую новый пароль.
4 Новый пароль хэширую md5 и заменяю старый(в базе) на новый для этого пользователя.
5 Не хэшированную версию отправляю юзеру на мыло.

Позднее юзер в своем профиле сможет сменить пароль на какой он захочет.

Или лучше вариант предложенный levsha двумя постами выше?
Поделитесь опытом. Срочно нужно сделать, а как не могу решить.
Я склоняюсь ко второму(от b]levsha[/b]). Но пока еще не совсем предсталяю код.

Заранее благодарен за помощь.

  Ответить  
 
 автор: Николай2357   (01.08.2008 в 15:20)   письмо автору
 
   для: GeorgeIV   (01.08.2008 в 14:50)
 

Какэто "мыло подменил"? Можно подробней? А если сам сменил, тогда только через администратора. Как по другому? Сгенерированный пароль все равно сообщить както нужно. Мне кажется, что лучше не пугать клиента непонятными "Ваш временный пароль:lhglhliljhv", а написать "Для входа на Вашу страницу воспользуйтесь этой ссылкой"

  Ответить  
 
 автор: levsha   (01.08.2008 в 15:20)   письмо автору
 
   для: InfernuS   (01.08.2008 в 14:46)
 

Функция mcrypt_ecb ( int cipher, string key, string data, int mode )
Первый параметр - тип шифрования, например MCRYPT_3DES
Второй ключ - Секретный ответ,
Третий параметр - Данные (в вашем случа пароль),
Четвертый - режим - зашифровать MCRYPT_ENCRYPT или расшифровать MCRYPT_DECRYPT.
В базе данных для пароля создайте два поля.
Первое будет хранить хеш пароля md5.
Второе будет хранить зашифрованный пароль, ключом является секретный ответ (или вопрос - ответ вместе).

Возможный вариант восстановления.
Пользователь вводит секретный ответ, он является ключом к зашифрованному паролю, получаем пароль, далее с него снимаем хеш md5, если этот хеш идентичен хешу в базе данных выдаем пароль, иначе ошибку.
Что не понятно спрашивайте.

  Ответить  
 
 автор: GeorgeIV   (01.08.2008 в 14:50)   письмо автору
 
   для: Николай2357   (01.08.2008 в 14:38)
 

а если я мыло подменил? или у меня сменилась почта?

  Ответить  
 
 автор: InfernuS   (01.08.2008 в 14:46)   письмо автору
 
   для: GeorgeIV   (01.08.2008 в 14:19)
 

Тогда не понятно, а как это реализуют, например на яндексе или мэйли. Другой алгоритм?
Или они не шифруют когда заносят в базу?
Вообще я слышал, что дешифруются: ГОСТ_28147-89, 3DES и IDEA. Только вот не знаю применяют их в стандартных php кодах или нет?
levsha
Можно поподробнее про функции библиотеки mcrypt.

  Ответить  
 
 автор: BinLaden   (01.08.2008 в 14:40)   письмо автору
 
   для: Николай2357   (01.08.2008 в 14:38)
 

Я не понимаю, зачем Вы хотите передавать текущий пароль в ссылке? Кому от этого легче? Тогда уже сразу скажите его пользователю, а не устраивайте карусель:)

  Ответить  
 
 автор: Николай2357   (01.08.2008 в 14:38)   письмо автору
 
   для: GeorgeIV   (01.08.2008 в 14:19)
 

Ну ведь на мыло ссылка на его личную страницу, там сразу написал новый и все.

  Ответить  
 
 автор: GeorgeIV   (01.08.2008 в 14:19)   письмо автору
 
   для: Николай2357   (01.08.2008 в 14:12)
 

Зачем на мыло отправлять? На сайтах есть ссылочка - "Забыли пароль?", которая едет на страницу восстановления пароля

  Ответить  
 
 автор: Николай2357   (01.08.2008 в 14:12)   письмо автору
 
   для: Николай2357   (01.08.2008 в 10:53)
 

Боюсь опять напартачить, подскажите, где тут тонко?
Придумал я такой компромисс: Нужно на мыло юзеру отправлять не сам сгенерированный новый пароль, а ссылку плана
<a href='страница восстановления?pass=абракадабра'>пройдите, восстановите</a>,
а там пусть пишет свое, родное.
Спасибо.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-45] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования