Замена встроенного хэширования пароля

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
tiberinx
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 04.10.2009 6:10
Откуда: Ош

Замена встроенного хэширования пароля

Сообщение tiberinx » 04.10.2009 6:36

Добрый день! Буду краток.

Мне для организации дистанционного обучения необъходимы на данный момент три продукта.

1)Moodle
2)phpBB 3.04
3)база данных студентов универа

с Moodle я разобрался, там можно сделать авторизацию через phpBB3.

Потом встал вопрос в совмещении базы студентов и базы phpBB. Есть программа, написанная на Delphi, которая назначает студентам из базы конкретные логины и пароли. Т.е. с помощью этой же программы можно будет увидеть данные студента, находящиеся под выбранным логином. Пароли в базе студентов изначально не хешировались. Потому я сначала пытался убрать хеширование в phpBB, но многонедельные попытки завершались белым экраном. Если гора не идет к Магомеду, то Магомед идет к горе

Значит мне придется также хешировать пароли из БД студентов, как это делают скрипты в phpBB3


и вот вопрос

получтся ли у меня схема

БД студентов(логин\пароль) ----> (хеширование)----->(MSSQL/Databases/forum/dbo.phpBB_users)
чтобы потом при авторизации на форуме выходило true

если да, то помогите немножко, пожалуйста, мне нужна подсказка

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14533
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1556 раз

Re: Мой проект

Сообщение rxu » 04.10.2009 6:42

tiberinx
Из includes/functions.php берете phpbb_hash и phpbb_check_hash. Собственно, и всё.
Изображение

Аватара пользователя
tiberinx
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 04.10.2009 6:10
Откуда: Ош

Re: Мой проект

Сообщение tiberinx » 04.10.2009 6:53

Скажите честно, а хеширование из phpBB 3.04 убрать получится?

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14533
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1556 раз

Re: Мой проект

Сообщение rxu » 04.10.2009 7:08

Не понял двух моментов:
1) Почему 3.04, а не последняя версия?
2) В чем проблема убрать хэширование? Идёте в includes/auth/auth_db.php например, и заменяете проверку phpbb_check_hash на что угодно.

Код: Выделить всё

	// Check password ...
	if (!$row['user_pass_convert'] && phpbb_check_hash($password, $row['user_password']))
В других местах она вас не интересует, т.к. конференция не конвертированная из phpBB2.
Изображение

Аватара пользователя
tiberinx
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 04.10.2009 6:10
Откуда: Ош

Re: Мой проект

Сообщение tiberinx » 04.10.2009 7:32

rxu писал(а):Не понял двух моментов:
1) Почему 3.04, а не последняя версия?
Еще когда-то скачал, потом поставил на MS SQL 2003. В АЦ не требовал обновления, вот поэтому и не обновляю
2) В чем проблема убрать хэширование? Идёте в includes/auth/auth_db.php например, и заменяете проверку phpbb_check_hash на что угодно.
Заменил на

Код: Выделить всё

// Check password ...
	if (!$row['user_pass_convert'] && phpbb($password, $row['user_password']))
создал нового пользователя, в базе пароль хешируется

Добавлено спустя 48 минут 36 секунд:
Также попробовал изменить схожую строку в functions.php

Но хеширование осталось

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14533
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1556 раз

Re: Мой проект

Сообщение rxu » 04.10.2009 8:31

tiberinx
Вы вроде только подсказку просили ;)
Подсказываю: поиск имени функции по файлам рулит.
При создании нового пользователя, в includes/ucp/ucp_register.php

Код: Выделить всё

'user_password'			=> phpbb_hash($data['new_password']),
Изображение

Аватара пользователя
tiberinx
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 04.10.2009 6:10
Откуда: Ош

Re: Мой проект

Сообщение tiberinx » 04.10.2009 8:40

А извиняюсь. Вы мне подсказали, а мне показалось, что указали. Начал действовать :lol:

Добавлено спустя 19 минут 47 секунд:
Спасибо Вам, товарищ, большое !!!

Добавлено спустя 47 минут 2 секунды:
Re: Замена встроенного хэширования пароля
Однако одна загвоздка. В базе пароли уже не хешируются. Регистрация проходит, но когда я хочу войти, то выходит белый экран.

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14533
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1556 раз

Re: Замена встроенного хэширования пароля

Сообщение rxu » 04.10.2009 10:53

Смотрите еррор_лог сервера.

Добавлено спустя 58 минут 23 секунды:
tiberinx
Отвечайте в теме, а не в ЛС.
Я не очень хорошо знаком с IIS, поэтому искать, куда этот сервер пишет лог ошибок, придется вам самому :)
Изображение

Аватара пользователя
tiberinx
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 04.10.2009 6:10
Откуда: Ош

Re: Замена встроенного хэширования пароля

Сообщение tiberinx » 04.10.2009 12:46

Лог пока не нашел, расскажу так.

После изменения

Код: Выделить всё

phpbb_hash
и

Код: Выделить всё

phpbb_check_hash
в файле function.php перестает работать регистрация. Однако заменив строку в файле ucp_register.php

Код: Выделить всё

'user_password'	 =>  phpbb_hash($data['new_password']),
на

Код: Выделить всё

'user_password'	  =>   $data['new_password'],
регистрация работает и в базу впиывается нехешированный пароль.
При авторизации после ввода логина и пароля выходит пустой экран (Mozzila) или ошибка 500 (IE).
Удаление

Код: Выделить всё

phpbb_hash
и

Код: Выделить всё

phpbb_check_hash
в файлах ucp_remind.php, ucp_profile.php ни к чему не привели.

такие же изменения в файле auth_db.php приводят к краху форума

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14533
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1556 раз

Re: Замена встроенного хэширования пароля

Сообщение rxu » 04.10.2009 12:54

Ранее для проверки авторизации вы сделали

Код: Выделить всё

// Check password ...
   if (!$row['user_pass_convert'] && phpbb($password, $row['user_password']))
Что есть функция phpbb()? Отсюда и копайте.
Изображение

Аватара пользователя
tiberinx
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 04.10.2009 6:10
Откуда: Ош

Re: Замена встроенного хэширования пароля

Сообщение tiberinx » 04.10.2009 13:04

rxu писал(а):Ранее для проверки авторизации вы сделали

Код: Выделить всё
// Check password ...
if (!$row['user_pass_convert'] && phpbb($password, $row['user_password']))


Что есть функция phpbb()? Отсюда и копайте.
После этого я уже переустановил 2 раза.

Добавлено спустя 2 минуты 19 секунд:
Сейчас у меня

Код: Выделить всё

// Check password ...
  if (!$row['user_pass_convert'] && phpbb_check_hash($password, $row['user_password']))


и если я уберу

Код: Выделить всё

phpbb_check_hash
, то весь форум накрывается белым экраном

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14533
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1556 раз

Re: Замена встроенного хэширования пароля

Сообщение rxu » 04.10.2009 13:21

А если заменить его, к примеру, на

Код: Выделить всё

if (!$row['user_pass_convert'] && ($password == $row['user_password']))
Изображение

Аватара пользователя
tiberinx
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 04.10.2009 6:10
Откуда: Ош

Re: Замена встроенного хэширования пароля

Сообщение tiberinx » 04.10.2009 13:32

Вы волшебник! :D Работает, спасибо!

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14533
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1556 раз

Re: Замена встроенного хэширования пароля

Сообщение rxu » 04.10.2009 13:36

Хранение паролей в открытом виде в БД - совсем не айс.
Изображение

Аватара пользователя
tiberinx
phpBB 1.2.0
Сообщения: 10
Зарегистрирован: 04.10.2009 6:10
Откуда: Ош

Re: Замена встроенного хэширования пароля

Сообщение tiberinx » 04.10.2009 13:46

Во вторник нужно отчитаться. Я шифрование позже сделаем. Чтобы программу научить шифровать, уйдет много времени. К тому же программу делаю не я. Мое дело форум

Добавлено спустя 1 минуту 2 секунды:
А Вам большое спасибо, ибо не видать мне было зарплаты. :D

Вернуться в «Для авторов (phpBB 3.0.x)»