Forum Webscript.Ru

Общие => Базы данных => Тема начата: MadDog от 07 Мая 2002, 17:33:52

Название: Проблема с получением данных из Базы
Отправлено: MadDog от 07 Мая 2002, 17:33:52
Суть проблемы в следующем.

Допустим в базе есть таблица users с полями UserLogin и UserPassword. При регистрации пользователей пароль юзверя заносится в соответсвующее поле базы с помощью функции PASSWORD().

Так вот. А как бы получить настоящее значение поля UserPassword, если юзверь забыл этот самый пароль?

ЗЫ. Уже пару часов на работе голову ломаю. К концу рабочего дня котелок уже не варит. :)

ЗЫЫ. Тьфу ты не в тот топик положил тему. Переместите, плиз, и сильно не ругайте.
Название: Проблема с получением данных из Базы
Отправлено: YA от 07 Мая 2002, 17:46:46
Никак, генерируй пользователю новый пароль.
Название: Проблема с получением данных из Базы
Отправлено: Dm от 07 Мая 2002, 23:28:57
MadDog
внимательнее на ман нужно любоваться :)
Цитировать
PASSWORD() encryption is non-reversible.

оригинал:
http://www.mysql.com/doc/M/i/Miscellaneous_functions.html

просто нужно поменять пароль на новый.
Название: Проблема с получением данных из Базы
Отправлено: MadDog от 08 Мая 2002, 09:13:09
Dm
Цитировать
внимательнее на ман нужно любоваться

Биг сенкс, а вот слона-то я и не заметил. :insane:

Цитировать
генерируй пользователю новый пароль

Цитировать
просто нужно поменять пароль на новый

Ну либо написать свою функцию шифрации-дешифрации


Тогда немного поставлю вопрос по-другому.
Насколько безопастно (или правильно, что ли) хранить пароли пользователей в базе без шифрования?
Название: Проблема с получением данных из Базы
Отправлено: ThE0ReTiC от 08 Мая 2002, 10:32:23
MadDog
Цитировать
Насколько безопастно (или правильно, что ли)

Небезопасно и не правильно.
Цитировать
Ну либо написать свою функцию шифрации-дешифрации

Велосипед изобретать не рекоммендую. Ты же не Седжвик.
Да. И тема уехала в базы.
Название: Проблема с получением данных из Базы
Отправлено: Макс от 08 Мая 2002, 14:54:45
Можно такое использовать:
Необходимые данные:
пароль
вопрос для напоминания
ответ на вопрос

Алгоритм:
юзер вводит пароль
и ответ на вопрос.
в БД заносится password(\'$password\');
и encpass=encode(\'$password\',\'ответ\');

если юзер забыл пароль - ему выводится вопрос
Далее
если password==password(\'decode(\'encpass\',\'ответ\')) юзер выводится decode(\'encpass\',\'ответ) - это будет забытый пароль.
encode() и decode() - встроенные функции MySQL.
Насколько надежны - не знаю, может стоит использовать mcrypt()

PS
Если кто идею не понял, то суть в том, чтобы с помощью ответа шифровать пароль, но сам ответ в БД не хранить. Его будет вводить юзер, когда забудет пароль.
Название: Проблема с получением данных из Базы
Отправлено: Dm от 09 Мая 2002, 00:27:24
еще раз любуемся на ман по тому же адресу
про ENCRYPT/DECODE/DES_ENCRYPT/DES_DECRYPT

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