17 июня 2025, 16:36:20

Новости:

Узнай первым о новых темах и ответах в Telegram канале:  @gratis_forum


avatar_Лесандр

Раздумья о MySQL

Автор Лесандр, 04 мая 2006, 20:46:32

0 Пользователей и 1 гость просматривают эту тему.

Лесандр

Недавно столкнулся с такой вот штуковиной. Имеется база данных логинов. Соответственно логин и пароль.
И вот весь конфуз в том, что пароль хранится в зашифрованном виде. И при попытке вытащить его простейшим запросом, получается на выходе зашифрованная последовательность. А мне необходимо эти же учетные записи использовать на вход.
Как можно с этим справиться? Я думаю, что это должен быть како-то "стандартный" алгоритм. PhpBB и IPB ведь тоже по такому же принципу хранят шифрованные пароли.
"Рай на земле не возможен, но мы можем принести в мир кусочек рая и бороться за то, чтобы сохранить его" Дж. Р. Р. Толкин

bestya

Лесандр
Можно попробовать программу PasswordsPro [Для просмотра ссылки зарегистрируйтесь] которая позволяет подобрать пароль по его хешу, возможна как атака по словарю так и методом перебора.

Цитировать
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]

Лесандр

Так а зачем мне подбирать.... Мне нужно, чтобы  я смог их обрабатывать в PHP сценарии. Ведь движки форумов то это делают.
"Рай на земле не возможен, но мы можем принести в мир кусочек рая и бороться за то, чтобы сохранить его" Дж. Р. Р. Толкин

bestya

Лесандр
с php помочь не смогу :(  но может это подойдет?

Цитировать
md5
md5 -- Вычисляет значение md5 для строки
Описание
string md5(string str);

Вычисляет значение MD5 для строки str используя алгоритм RSA Data Security, Inc. MD5 Message-Digest.


Фрагмент файла login.php форума phpBB2 2.0.19

if( md5($password) == $row['user_password'] && $row['user_active'] )
...


Как видно сравнивается md5 хеш пароля, введенный пользователем, с тем что храниться в таблице.

Лесандр

Ага.... Хм.... Посмотрим, посмотрим. Спасибо!
"Рай на земле не возможен, но мы можем принести в мир кусочек рая и бороться за то, чтобы сохранить его" Дж. Р. Р. Толкин

Лесандр

Однако разобрался.
В моем случае было шифрование вида SHA-1 (Base64), соответственно шифрование посредством PHP происходит с помощью незамысловатой строчечки:


base64_encode(pack("H*", sha1($pass)));

где $pass-содержит нормальный истинный пароль.
Теперь остается сравнить возвращенное значение этой функции с тем, что лежит в базе и усе :)

bestya , Спасибо за идеи :)
"Рай на земле не возможен, но мы можем принести в мир кусочек рая и бороться за то, чтобы сохранить его" Дж. Р. Р. Толкин



По всем вопросам пишите по адресу gratispp@mail.ru