Решено Как получить Хэш пароля - Авторизация в программе на С++, используя хэш пароля в БД XenForo

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.18 patch2

Frol

Проверенные
Сообщения
22
Реакции
9
Баллы
140
Здравствуйте товарищи, подскажите пожалуйста, если кто в курсе.

Есть у меня программа на C++, в ней я принимаю логин и пароль введённые пользователем, хэширую полученный пароль, так же, как это делает мой старый форум(IPS), проверяю совпадают ли результаты с записью в БД форума и авторизирую пользователя.
Сейчас пытаюсь переехать на XenForo, но не могу нагуглить алгоритм, который использует xenforo (установлен у меня 2.18patch2 - XenForo 2.1.8 Patch 2 Nulled By XenForo.Info)
Подскажите пожалуйста, если кто знает этот алгоритм.
 
Спасибо за ответы.
Я понимаю почему вы предлагаете API и согласился бы с вами, если бы не одно но, я не шарю в PHP(я на код смотрю и почти ничгео не понимаю, кроме общих основ) и не хочу внутрь автономной системы, которая работает без сбоев, добавлять PHP, который потянет за собой привязку в апачу и нжинкс. Сейчас, если форум лёг, его заддосили или умер диск и т.д., моя система работает, потому что БД на отдельном хосте и моей системе не важно, работает ли пхп, апач и т.д., а в случае с использованием пхп, все эти проблемы могут появиться.
Отказоустойчивость авторизации, для меня самое важно, если лёг форум, я переживу, если упала авторизация, мне писец.

Посмотри здесь src/XF/Authentication
Я с неё и начала(нашел на форуме отсылки к этой папке), но прямо скажем я там нефига не понял.Такое ощущение, что там в разных файлах лежит по одной функции, которые друг из друга вызываются и получается результат:)

Я понимаю что по сути прошу вас дать мне готовый ответ, при том чт вы уже показали мне, где его можно найти.Но если вы сможете в 2 словах описать последовательность, буду вам очень признателен.
Там же наверняка что-то простое, типа:
Берём md5 пароля + md5 соли пользователя, потом эту строчку снова в md5 и вуаля:)
 
Последнее редактирование модератором:
Там же наверняка что-то простое, типа:
Берём md5 пароля + md5 соли пользователя, потом эту строчку снова в md5 и вуаля:)
Ничего подобного.
XenForo поддерживает несколько разных способов аутентификации. Активный способ и результат работы функции хеширования (+ дополнительные параметры, если есть) лежат в xf_user_authenticate. У каждого юзера может быть свой способ аутентификации:
1588356899719.png
 
Ничего подобного.
XenForo поддерживает несколько разных способов аутентификации. Активный способ и результат работы функции хеширования (+ дополнительные параметры, если есть) лежат в xf_user_authenticate. У каждого юзера может быть свой способ аутентификации:
Посмотреть вложение 115759
Правильно ли я понимаю, что тип хэширования который был использован, зависит от настроек форума и если там например будет стоять Core12, то всегда и у всех пользователей пароли будут хэшироваться только этим методом?
 
Типа хеширования в настройках форума вообще нет. Способ зависит от сервера, и то, каким образом движок узнал про этого пользователя.
В случае с Core12, способ хеширования ещё зависит от PHP. Там используется встроенное в него решение для хеширования паролей. Погуглите про password_hash() в нем.
 
  • Мне нравится
Реакции: Hope
Типа хеширования в настройках форума вообще нет. Способ зависит от сервера, и то, каким образом движок узнал про этого пользователя.
В случае с Core12, способ хеширования ещё зависит от PHP. Там используется встроенное в него решение для хеширования паролей. Погуглите про password_hash() в нем.
Афигеть они намудрили.Получается, что мне нужно узнать ВСЕ возможные варианты хэширования, каждый из них реализовать на плюсах, и сделать проверку перед сверкой хэшей, чтобы знать, каким образом хэшировался пароль у данного пользователя и использовать соответствующий метод.

Возможно мне стоит пересмотреть переход с IPS на Xenforo:)))

Всем спасибо за ответы товарищи, подую, решу.Если буду мучиться с xenforo, то выложу потом сюда результат.
 
что мне нужно узнать ВСЕ возможные варианты хэширования,
Проще все таки api - ничто не мешает поднять под api отдельный инстанс, который в свою очередь будет закрыт от внешних угроз.
 
Проще все таки api - ничто не мешает поднять под api отдельный инстанс, который в свою очередь будет закрыт от внешних угроз.
Отдельный инстанс, требует выделения ресурсов и обслуживания.Возможно для вас это прозвучит как "незначительный" фактор, но лично у меня, такой подход.Не делай лишней херни, если можно сделать правильно.
Я понимаю что вы предлагаете выход из ситуации, но если бы меня устраивал такой вариант, а я бы не пришел сюда с вопросами, а просто сделал таким вот "простым" способом.
 
Проще все таки api - ничто не мешает поднять под api отдельный инстанс, который в свою очередь будет закрыт от внешних угроз.
Мне кажется, это можно сделать даже через консоль, у движка ведь есть консольный интерфейс. В таком случае не нужно поднимать веб-сервер для обработки запросов. А, я идиот, не прочитал что база на отдельном сервере, извиняюсь

Не делай лишней херни, если можно сделать правильно.
Лезть напрямую в базу, это уже неправильно, так что наверное критерий правильности тут всё таки отпадает
 
Последнее редактирование:
Мне кажется, это можно сделать даже через консоль, у движка ведь есть консольный интерфейс. В таком случае не нужно поднимать веб-сервер для обработки запросов


Лезть напрямую в базу, это уже неправильно, так что наверное критерий правильности тут всё таки отпадает
PHP тоже лезет напрямую в базу, это тоже не правильно?:)Хотите развести бесполезный диалог на тему того, что правильно по вашему мнению, а что нет?:)

У меня нет задачи, убедить вас в своей правоте.Если вас оскорбляет то, что я называю "правильными" способ, где исключается несколько звеньев с нулевой отказоусточивостью, то просто не принимайте это близко к сердце.Это моё субъективное мнение, и поделился я им, не для того чтобы показать свою "правоту", а просто для того, чтобы объяснить человеку, который пытается мне помочь, что предложенный вариант для меня не подходит.

Простите если кого обидел, я пришел за помощью, а не за нравоучениями.
 
Простите если кого обидел, я пришел за помощью, а не за нравоучениями.
Вы пришли на форум, где люди ведут диалог. Здесь много разработчиков, и каждый из них может изложить своё мнение и свой взгляд на проблему. Мне пришла мысль в голову - я её высказал, не более. В эту тему после вас могут заглянуть другие люди, которым подойдет один из предложенных вариантов. Если вы хотите закончить обсуждение - тему можно закрыть
 
не прочитал что база на отдельном сервере,
Ну, учитывая то что при грамотном ддос база ляжет самой первой; то в разрезе построения хоть какой-то отказоустойчивости (хотя бы на уровне реплики мастер-слейв критичных для авторизации таблиц и читать авторизацию со слейва) расходы на процесс php, тем более консольного, реально копеечные.

Афигеть они намудрили.
Вообще-то нет, это больше зависит от того, откуда исторически появились пользователи. Если это импорт с других движков, то как правило, это будет один дополнительный (для поддержки совместимости паролей). Плюс один-два штатных метода. Если же импорта не было, а еще и запускать проект на свежем движке и пыхе - то там будет один метод.
 
Последнее редактирование:
Вы пришли на форум, где люди ведут диалог. Здесь много разработчиков, и каждый из них может изложить своё мнение и свой взгляд на проблему. Мне пришла мысль в голову - я её высказал, не более. В эту тему после вас могут заглянуть другие люди, которым подойдет один из предложенных вариантов. Если вы хотите закончить обсуждение - тему можно закрыть
Вы изложили своё мнение о том, что моё мнение о "правильности" на ваш личный взгляд - ошибочное.
 
В любом случае, готовьтесь искать готовые решения или писать свое для десериализации данных из формата PHP в более удобный для работы из плюсов. Если нет желания прибегать к рест апи.
 
Ну, учитывая то что при грамотном ддос база ляжет самой первой; то в разрезе построения хоть какой-то отказоустойчивости (хотя бы на уровне реплики мастер-слейв критичных для авторизации таблиц и читать авторизацию со слейва) расходы на процесс php, тем более консольного, реально копеечные.


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

Обращение идёт не напрямую к боевой БД, а к её копии 10 минутной давности, вероятность падения этой системы при воздействии извне, представляется мне почти невозможным, разве что электростанцию взорвут как в матрице)))хотя, если кто зарегистрируется за 10 минут, между созданием копией и началом ддоса, то они авторизоваться не смогут.Но это я считаю незначительной погрешностью.

Всё сводится к тому, что я пытаюсь реализовать необходимое, в том виде, в котором разбираюсь.А WEB для меня тёмный лес и чтобы что-то на нём сделать хорошо, мало просто погуглить и послушать советы, нужно изучать, применять и смотреть что получится, ибо опыт, это всё.
Зачем мне учить как работает PHP, если у меня нет задач, которые связаны с его использованием?

Товарищи, мы ушли от обсуждения вопроса "как воспроизвести метод хэширования" и перешли к обсуждению вопроса "почему не нужно делать так, как это пытаюсь сделать я".
Зачем?Мы же не в соц.сетях, к чему всё это)
 
В любом случае, готовьтесь искать готовые решения или писать свое для десериализации данных из формата PHP в более удобный для работы из плюсов. Если нет желания прибегать к рест апи.
В эту сторону пока и копаю, нашел какую-то инфу, пытаюсь в неё вникнуть)Посмотрим что из этого получится
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу