Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2007-12-12 13:56:25

Andy
Гость

имена и пароли в таблице users

Как БД форума достать имя/пароль каждого пользователя? Пароли в каком-то зашифрованном виде в таблице users записаны. Как перекодировать или какие ещё есть способы?

#2 2007-12-12 14:33:43

artoodetoo
Гость

Re: имена и пароли в таблице users

они закодированы безвозвратно, расшифровка теоретически невозможна.
при логинизации пользователя его введенный пароль снова кодируется этим же алгоритмом и сравнивается с тем, что лежит в базе.

- что делать если пользователь про№6@л пароль, а почтовый ящик указал вымышленный? (чудак!)
- расшифровать пароль не получится. админ заходит в профиль этого пользователя и прописывает новый пароль. потом пользователь сможет изменить свой пароль. или админ прописывает новый email, а пользователь делает запрос на восстановление пароля http://mysite.com/login.php?action=forget — на новый email придет письмо со строкой активации

#3 2007-12-12 18:14:04

Andy
Гость

Re: имена и пароли в таблице users

artoodetoo

Дело не в этом, мне надо в другом модуле зарегить всех уже зарегистрированных на форуме пользователей. По какому алгоритму кодируются пароли? Ведь если его знать обратно можно стопудово. Или нет?

#4 2007-12-12 20:34:40

hcs
Гость

Re: имена и пароли в таблице users

Обратно нельзя. И вобщемто хорошо что в базе пароли закодированы.
Ты можешь авторизацию в твоем "другом" модуле подправить так, чтобы она работала с хэшами паролей, по принципу как это сделано в punbb.

#5 2007-12-12 22:32:55

KCEOH
Гость

Re: имена и пароли в таблице users

Обратно можно. Притом, как показывает практика - от 20% до 80% паролей "восстанавливаются" (зависит от тематики форума, пользователи компьютерных форумов более опытны и пароли более сложные).

http://www.insidepro.com/rus/passwordspro.shtml
Метод криптования в punbb - SHA.

Самый простой способ - переносишь данные, поднимаешь форум, вешаешь объяву: "Форум обновили, пароли скинулись, восстанавливаем ручками."

#6 2007-12-13 06:19:26

artoodetoo
Гость

Re: имена и пароли в таблице users

Andy пишет:

Ведь если его знать обратно можно стопудово. Или нет?

нет

KCEOH, это не "обратно", а тупой подбор - bruteforce. надо ли повторять то, что тысячи раз описано: длинные "не из словаря" пароли можно подбирать ОЧЕНЬ долго. 
например пароль "milk" будет подобран за секунды, "miLk" за минуты, "@#$miLk9@#$" уже за несколько дней, а символы сверх 7bit ASCII ломалка может вообще не подбирать.

а главное незачем так мучаться smile при переносе базы пароли не портятся. если юзер забыл пароль - есть штатное восстановление пароля smile

#7 2007-12-13 09:48:06

artoodetoo
Гость

Re: имена и пароли в таблице users

дополнение: на прошлой неделе я здесь забанил одного пользователя за очень похожий вопрос. теперь он шлет матерные письма.

для легального администратора эта задача смысла не имеет. не тратьте свое время на эти извращения.

#8 2007-12-13 13:54:47

Slavik
Гость

Re: имена и пароли в таблице users

artoodetoo пишет:

@#$miLk9@#$

дни? Я думаю для полного перебора на лбычном P4-2ггц нужны года...

#9 2007-12-13 18:18:44

Andy
Гость

Re: имена и пароли в таблице users

Хорошо, тогда должны же быть какие-то конверторы для перехода допустим с PunBB на другие форумы, как тогда они перекодируют?

#10 2007-12-14 08:37:24

artoodetoo
Гость

Re: имена и пароли в таблице users

при переходе можно использовать ту же технику, что уже есть в самом punbb:
сейчас предпочтительным считается алгоритм SHA, но исторически сложилось, что пароли пользователей могли быть закодированы как MD5.
требуется сменить кодировку, при этом "раскодирование" невозможно smile

(фрагмент из login.php)

$sha1_in_db = (strlen($db_password_hash) == 40) ? true : false;
...
if (!$sha1_in_db && $db_password_hash == md5($form_password))
{
    $authorized = true;

    if ($sha1_available)    // There's an MD5 hash in the database, but SHA1 hashing is available, so we update the DB
        $db->query('UPDATE '.$db->prefix.'users SET password=\''.$form_password_hash.'\' WHERE id='.$user_id) or error('Unable to update user password', __FILE__, __LINE__, $db->error());
}

по-русски это означает:
по длинне хеша в базе мы можем понять что это - SHA это или не SHA.
если в базе пароль хранится НЕ в виде SHA, кодируем то что только ввел пользователь по старому - как MD5 и сравниваем,
если совпало, то считаем, что пользователь успешно авторизовался и на будущее меняем его пароль в базе на кодированный методом SHA.

аналогично можно делать с любым другим алгоритмом: сравниваем по двум стандартам и при успехе сохраняем в новом стандарте.
никакого "обратного раскодирования". постепенно пользователи переползают в новый стандарт.

#11 2007-12-15 15:32:20

Andy
Гость

Re: имена и пароли в таблице users

ясно, хреново, что нету решения

#12 2007-12-17 13:56:37

Lawyer
Гость

Re: имена и пароли в таблице users

artoodetoo пишет:

дополнение: на прошлой неделе я здесь забанил одного пользователя за очень похожий вопрос. теперь он шлет матерные письма.

для легального администратора эта задача смысла не имеет. не тратьте свое время на эти извращения.

разрешу себе тебя подправить!

Не матерные, - а эмоциональные.

artoodetoo спасибо за ссылку на эту тему.

сорри за офтоп smile

по сути темы:

сразу предупреждаю - вопрос может показаться дурацким, тем кто в теме, я пока не совсем.

можно ли забить в БД пользователей без паролей (не указывая их), после чего через админку форума задав пароли этим пользователям?
ЗЫ интересует чисто практический аспект реализации

#13 2007-12-17 22:05:18

artoodetoo
Гость

Re: имена и пароли в таблице users

Lawyer пишет:

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

можно наверное.
если в базе в поле "пароль" будет пусто, то пользователь не сможет зарегистрироваться ни с пустым, ни с каким другим паролем, пока мы ему не зададим какой-нибудь реальный пароль.

кстати, для добавления пользователей можно воспользоваться плагином "User management". на тестовых установках я его использую.
умеет задавать пароль какой укажешь или генерирует случайный. когда пароль генерирует плагин, он сам отсылает на указанный в анкете email письмо с рег. данными.
http://punbb.org/downloads.php

Подвал доски

Под управлением FluxBB. Хостинг Hostens