Форум сетевых администраторов
Показаны 15 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- VB интеграция (http://netadmin.ws/forum/forumdisplay.php?forumid=79)
-- vB3 + chat.php.spb.ru (http://netadmin.ws/forum/showthread.php?threadid=9358)


Помещено Bratok 15-08-2004 в 12:04:

vB3 + chat.php.spb.ru

Народ, кто может подсказать что да как сделать для совмещения базы воблы и чата chat.php.spb.ru

на второй вобле, чат отлично брал данные из БД, а под тройкой возникает такая проблема.
Логинишься в чат (логин пароль верные) и выдает ошибку, что типа такой ник возможно не зарегистрирован или пароль к ниму не подходит, а если с такими же данными зайти на форум, то на форуме все отлично

__________________
Tu ne cede malis, sed contra audehtior
Не покоряйся беде, но смело иди навстречу.


Помещено polo 15-08-2004 в 12:52:

нужно два раза использовать md5, в базе пароль храниться в следующем виде md5(md5('пароль')).

polo добавил 15-08-2004 в 12:54:48:
посмотри также страницу на форуме, где вводиться пароль, там используется js функция md5, те скрипту посылаеться уже md5 хэш пароля, а в скрипте еще раз используеться md5.

__________________
Всегда есть решение.


Помещено prosto 22-09-2004 в 17:35:

Не подскажете более подробно, как всё же можно решить данную проблему с чатом chat.php.spb.ru?

Спасибо.


Помещено w00fer 13-11-2004 в 02:17:

Bratok
у тебя коммерческая версия чата?

__________________
Чему быть, того не миновать


Помещено w00fer 04-04-2005 в 20:51:

Bratok
удалось решить проблему?
если удалось, помоги остальным

__________________
Чему быть, того не миновать


Помещено w00fer 29-05-2005 в 12:09:

quote:
Первоначальное сообщение от polo
нужно два раза использовать md5, в базе пароль храниться в следующем виде md5(md5('пароль')).

polo добавил 15-08-2004 в 12:54:48:
посмотри также страницу на форуме, где вводиться пароль, там используется js функция md5, те скрипту посылаеться уже md5 хэш пароля, а в скрипте еще раз используеться md5.



ну хоть ты, polo, помоги =)
вот эта функция:

PHP:

function check_extern_pass($chatpwd, $forumpwd) 
{

      if (
sl(md5($chatpwd))==sl($forumpwd)) return 1;

      return 
0;
   }



как её исправить для 3ей воблы?

хэлп, плиз.

__________________
Чему быть, того не миновать


Помещено polo 30-05-2005 в 08:18:

Что делает функция sl?

polo добавил 30-05-2005 в 08:24:05:
допустим есть у нас пароль: 123456, в базе форума он будет хранится как `14e1b600b1fd579f47433b88e8d85291`, сравниваем пароли:
md5(md5('123456')) == '14e1b600b1fd579f47433b88e8d85291' // даст true

Используйте отладочные функции типа echo если что-то не получается и на экране смотрите в чем дело.

__________________
Всегда есть решение.


Помещено w00fer 30-05-2005 в 17:12:

polo
удалось выяснить, что функция sl в указанном участке кода (цитирую):
------------------------------------------------------------
Переводит стринговый аргумент в нижний регистр
------------------------------------------------------------

if md5(md5($chatpwd)))==$forumpwd return 1;

не работает

вот, кстати, нашёл в сорцах чата функцию sl


PHP:


function sl($str) { 
   if (
$GLOBALS['locale']) 
      return 
strtolower(@strval($str));
   else 
      return 
strtr($str,$GLOBALS['preg_rus2'].$GLOBALS['preg_eng2'],$GLOBALS['preg_rus1'].$GLOBALS['preg_eng1']);

}

__________________
Чему быть, того не миновать


Помещено polo 31-05-2005 в 09:52:

echo $chatpwd;
echo $forumpwd;
Посмотри что выводит.
Oткуда берется $chatpwd - из базы или из формы?

__________________
Всегда есть решение.


Помещено w00fer 01-06-2005 в 19:24:

polo
вобщем, сделал $echo обоих паролей, вот что обнаружил:

$forumpwd выводится точно такой же, какой лежит в базе (через phpMyAdmin проверил), а вот $chatpwd вылазит какой-то левый, я его 1 раз через md5 и 2 раза пробовал прогнать - он всё равно не совпадает с $forumpwd. а есть ли скрипт, который проводит обратное хэширование или Дехэш, т.е. из кучи символов после хэширования (е74а5ы74п4р5н7р и т.д.) в нормальный пасс?

__________________
Чему быть, того не миновать


Помещено polo 02-06-2005 в 12:12:

quote:
Дехэш, т.е. из кучи символов после хэширования (е74а5ы74п4р5н7р и т.д.) в нормальный пасс?
нету

Смотри как чат сохраняет пароли в базе. И измени так чтобы сохраняло как в вб (md5(md5($pass))). Мне кажется что там используется функция Mysql PASSWORD.

__________________
Всегда есть решение.


Помещено w00fer 02-06-2005 в 13:27:

polo
есть psswordPro - http://www.insidepro.com
ты немного не прав. на самом деле форум хранит пароль так:
md5(md5($pass) . $salt); где salt - это поле в таблице ..._user, в нём 3 знака (к примеру, "A7."), это поле уникальное для каждого юзера. я проверял. выполнил хэширование как указано выше и мой созданный хэш совпал с хэшем, хранящимся в базе форуме (проверял через phpMyAdmin), но ... теперь новая проблема: =)
надо писать запрос к базе, чтобы была переменная, к примеру, $salt, которая будет для каждого юзера брать значение salt из базы и вставлять в md5(md5($pass) . $salt);
но я с mysql не дружу особо (как и с PHP =) так что не знаю ... буду пробовать, если можешь помочь, буду признателен

__________________
Чему быть, того не миновать


Помещено w00fer 03-06-2005 в 20:05:

Bratok, polo
всё. сделал.
выглядит это примерно так (заменить в файле src/export_universal.php:


code:

    mysql_connect('xxx', 'xxx', 'xxx');
    mysql_select_db('xxx');
   
   $sql = "SELECT salt FROM xxx_user WHERE username = '" . $mynick ."'"; 
    
   $result = mysql_query($sql);
   $row = mysql_fetch_object($result);
    
   $salt = $row->salt;
       
   function check_extern_pass($chatpwd, $forumpwd) {
                      
         global $salt;             
                      
      if (md5(md5($chatpwd) . $salt) == $forumpwd) return 1;

      return 0;
   }



везде в коде xxx заменить на правильные значения.

ps. я не программист, с пхп и mysql знаком плохо, соответственно, данный код наверняка можно переписать более компактно и правильно. и ещё: нужно будет настроить некоторые поля (например, пол юзера) тоже вруную, но это уже техника. авторизация юзеров проходит (проверял).

__________________
Чему быть, того не миновать


Помещено polo 04-06-2005 в 10:32:

quote:
есть psswordPro - http://www.insidepro.com
эта прога не восстанавливает md5 хэш а прсто перебирает варианты. md5 хэш обратно перевести невозможно, для этого существуют другие алгоритмы типа crypt.

__________________
Всегда есть решение.


Помещено w00fer 04-06-2005 в 10:53:

polo
ну да, я это и имел ввиду после её т.с. тестирования выяснилось следующее: пароль для одного md5 хэша (MySQL) она может подбирать несколько часов на довольно мощной машине, у меня даже терпения не хватило ждать т.е. её эффективность проверить так и не удалось. вот.

__________________
Чему быть, того не миновать


Формат времени GMT. Текущее время 06:27.
Показаны 15 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.