Лесандр
  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 , Спасибо за идеи 