Forum Webscript.Ru

Общие => Базы данных => Тема начата: Skif от 26 Ноября 2003, 13:21:57

Название: Функция PASSWORD в MySQL
Отправлено: Skif от 26 Ноября 2003, 13:21:57
Люди сведующие, подскажите пожалуйста, есть ли какая-то возможность средствами перла эмулировать PASSWORD функцию Mysql? Просто у меня имеется база с паролями и именами пользователей. Пароли закриптованы этой самой функцией. Вытащить от туда не получается никаким макаром, для того, что бы провести авторизацию пользователя.
Так как она работает по md5 следовательно хеш уникальный.
тобишь если я наберу что-то я-ля

$pass=PASSWORD(\'secret\');

 сделаю выборку в таблице:

SELECT login,pass from table_pass;

Выбираю нужную ячейку pass и приравниваю $db_pass
Тогда можно сравнивать $db_pass/$pass и по результатам проводить положительную или отрицательную авторизацию
Все, что я на сегодня придумал это создать дополнительную таблицу куда будет загоняться вводимый пароль в форме, а потом производиться выборка загнанного пароля. Но неохота делать такое - очень много всего потом писать надо будет ;))) (ленивый я). Может есть какая возможность с эмулировать сию функцию?
Название: Функция PASSWORD в MySQL
Отправлено: ondr от 26 Ноября 2003, 13:44:35
Что мешает в запросе использовать mysql функцию password() ?  ( where pass like binary password(\'1234\') )
Название: Функция PASSWORD в MySQL
Отправлено: NeoNox от 26 Ноября 2003, 13:46:31
perldoc Digest::MD5
Название: Функция PASSWORD в MySQL
Отправлено: Skif от 26 Ноября 2003, 14:00:03
ondr Не понял. Если я в селекте начинаю использовать, тогда получиться что я еще раз закриптую пароль. Или ты имеешь в виду такой вариантец:

$pass=param(\'pass\');
$dbh = DBI->connect
                ("DBI:mysql:host=localhost;database=passwords","pupkin","secret");

$sth = $dbh->prepare("SELECT login,passwd FROM table WHERE password($pass)=passwd")

$sth->finish();
$dbh->disconnect();


Я правильно понял? ТОгда вопрос, пока я не вставил этот кусок кода (просто where еще ни разу не использовал - только начинаю с базами разбираться) левая часть понятна, а вот правая от равно это будет сравнени.выборка строк только тех, где в колонке passwd совпадает значение с password($pass), так?
NeoNox Пробовал, у меня хеши почему-то разные выходят :(((
Название: Функция PASSWORD в MySQL
Отправлено: ondr от 26 Ноября 2003, 14:14:40
Skif
Ты всё правильно понял.
Только я в предыдущем своем посте поправил. Лучше так
WHERE passwd LIKE binary PASSWORD($pass) (а то регистр не будет учитываться)
Название: Функция PASSWORD в MySQL
Отправлено: Skif от 26 Ноября 2003, 14:23:22
Ага, спасибо большое, а то я уже начал прикидывать как буду извращаться  создавая дополнительную таблицу, когда юзверы гурьбой потянуться авторизироваться;)))
Название: Функция PASSWORD в MySQL
Отправлено: fidget от 26 Ноября 2003, 15:24:41
функция PASSWORD() в MySQL разработана для собственной системы привилегий и использовать ее в своих собственных приложениях не рекоммендуется.
Используй, например, MD5(), как тебе советовали выше.