Лесандр
Thursday, 04 May 2006, 20:46
Недавно столкнулся с такой вот штуковиной. Имеется база данных логинов. Соответственно логин и пароль.
И вот весь конфуз в том, что пароль хранится в зашифрованном виде. И при попытке вытащить его простейшим запросом, получается на выходе зашифрованная последовательность. А мне необходимо эти же учетные записи использовать на вход.
Как можно с этим справиться? Я думаю, что это должен быть како-то "стандартный" алгоритм. PhpBB и IPB ведь тоже по такому же принципу хранят шифрованные пароли.
bestya
Thursday, 04 May 2006, 21:04
Лесандр Можно попробовать программу PasswordsPro [Для просмотра ссылки
зарегистрируйтесь] которая позволяет подобрать пароль по его хешу, возможна как атака по словарю так и методом перебора.
QUOTE |
The tool is designated to generate following types of hashes:
MySQL MD4 MD4 (Base64) MD5 MD5 (Base64) MD5 (Unix) MD5 (APR) SHA-1 SHA-1 (Base64) MSCash md5(md5($pass)) [PHP] md5(md5($pass).$salt) [PHP] md5(md5($salt).md5($pass)) [PHP]
|
Лесандр
Thursday, 04 May 2006, 22:17
Так а зачем мне подбирать.... Мне нужно, чтобы я смог их обрабатывать в PHP сценарии. Ведь движки форумов то это делают.
bestya
Thursday, 04 May 2006, 23:03
Лесандр с php помочь не смогу

но может это подойдет?
QUOTE |
md5 md5 -- Вычисляет значение md5 для строки Описание string md5(string str);
Вычисляет значение MD5 для строки str используя алгоритм RSA Data Security, Inc. MD5 Message-Digest.
|
Фрагмент файла login.php форума phpBB2 2.0.19
CODE |
if( md5($password) == $row['user_password'] && $row['user_active'] ) ...
|
Как видно сравнивается md5 хеш пароля, введенный пользователем, с тем что храниться в таблице.
Лесандр
Saturday, 06 May 2006, 7:06
Ага.... Хм.... Посмотрим, посмотрим. Спасибо!
Лесандр
Saturday, 06 May 2006, 18:50
Однако разобрался.
В моем случае было шифрование вида
SHA-1 (Base64), соответственно шифрование посредством PHP происходит с помощью незамысловатой строчечки:
CODE |
base64_encode(pack("H*", sha1($pass)));
|
где $pass-содержит нормальный истинный пароль.
Теперь остается сравнить возвращенное значение этой функции с тем, что лежит в базе и усе 
bestya , Спасибо за идеи 