Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Тема закрыта
Как БД форума достать имя/пароль каждого пользователя? Пароли в каком-то зашифрованном виде в таблице users записаны. Как перекодировать или какие ещё есть способы?
они закодированы безвозвратно, расшифровка теоретически невозможна.
при логинизации пользователя его введенный пароль снова кодируется этим же алгоритмом и сравнивается с тем, что лежит в базе.
- что делать если пользователь про№6@л пароль, а почтовый ящик указал вымышленный? (чудак!)
- расшифровать пароль не получится. админ заходит в профиль этого пользователя и прописывает новый пароль. потом пользователь сможет изменить свой пароль. или админ прописывает новый email, а пользователь делает запрос на восстановление пароля http://mysite.com/login.php?action=forget — на новый email придет письмо со строкой активации
artoodetoo
Дело не в этом, мне надо в другом модуле зарегить всех уже зарегистрированных на форуме пользователей. По какому алгоритму кодируются пароли? Ведь если его знать обратно можно стопудово. Или нет?
Обратно нельзя. И вобщемто хорошо что в базе пароли закодированы.
Ты можешь авторизацию в твоем "другом" модуле подправить так, чтобы она работала с хэшами паролей, по принципу как это сделано в punbb.
Обратно можно. Притом, как показывает практика - от 20% до 80% паролей "восстанавливаются" (зависит от тематики форума, пользователи компьютерных форумов более опытны и пароли более сложные).
http://www.insidepro.com/rus/passwordspro.shtml
Метод криптования в punbb - SHA.
Самый простой способ - переносишь данные, поднимаешь форум, вешаешь объяву: "Форум обновили, пароли скинулись, восстанавливаем ручками."
Ведь если его знать обратно можно стопудово. Или нет?
нет
KCEOH, это не "обратно", а тупой подбор - bruteforce. надо ли повторять то, что тысячи раз описано: длинные "не из словаря" пароли можно подбирать ОЧЕНЬ долго.
например пароль "milk" будет подобран за секунды, "miLk" за минуты, "@#$miLk9@#$" уже за несколько дней, а символы сверх 7bit ASCII ломалка может вообще не подбирать.
а главное незачем так мучаться при переносе базы пароли не портятся. если юзер забыл пароль - есть штатное восстановление пароля
дополнение: на прошлой неделе я здесь забанил одного пользователя за очень похожий вопрос. теперь он шлет матерные письма.
для легального администратора эта задача смысла не имеет. не тратьте свое время на эти извращения.
@#$miLk9@#$
дни? Я думаю для полного перебора на лбычном P4-2ггц нужны года...
Хорошо, тогда должны же быть какие-то конверторы для перехода допустим с PunBB на другие форумы, как тогда они перекодируют?
при переходе можно использовать ту же технику, что уже есть в самом punbb:
сейчас предпочтительным считается алгоритм SHA, но исторически сложилось, что пароли пользователей могли быть закодированы как MD5.
требуется сменить кодировку, при этом "раскодирование" невозможно
(фрагмент из 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.
аналогично можно делать с любым другим алгоритмом: сравниваем по двум стандартам и при успехе сохраняем в новом стандарте.
никакого "обратного раскодирования". постепенно пользователи переползают в новый стандарт.
ясно, хреново, что нету решения
дополнение: на прошлой неделе я здесь забанил одного пользователя за очень похожий вопрос. теперь он шлет матерные письма.
для легального администратора эта задача смысла не имеет. не тратьте свое время на эти извращения.
разрешу себе тебя подправить!
Не матерные, - а эмоциональные.
artoodetoo спасибо за ссылку на эту тему.
сорри за офтоп
по сути темы:
сразу предупреждаю - вопрос может показаться дурацким, тем кто в теме, я пока не совсем.
можно ли забить в БД пользователей без паролей (не указывая их), после чего через админку форума задав пароли этим пользователям?
ЗЫ интересует чисто практический аспект реализации
можно ли забить в БД пользователей без паролей (не указывая их), после чего через админку форума задав пароли этим пользователям?
можно наверное.
если в базе в поле "пароль" будет пусто, то пользователь не сможет зарегистрироваться ни с пустым, ни с каким другим паролем, пока мы ему не зададим какой-нибудь реальный пароль.
кстати, для добавления пользователей можно воспользоваться плагином "User management". на тестовых установках я его использую.
умеет задавать пароль какой укажешь или генерирует случайный. когда пароль генерирует плагин, он сам отсылает на указанный в анкете email письмо с рег. данными.
http://punbb.org/downloads.php
Страницы 1
Тема закрыта