1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Генерация пароля XenForo

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем Pyroman, 31.01.2013.

Загрузка
  1. Pyroman

    Pyroman Новичок

    Регистрация:
    09.10.12
    Сообщения:
    4
    Симпатии:
    0
    Версия XF:
    1.1.2
    Здравствуйте. Как XenForo генерирует пароли? Именно, чтобы получилось, как в базе "a:3:{s:4:"hash";s:64:"fc21654653aded66a13rjdxf468a9d16e7b9a58cdsgas35fd0384ac6cf27434dfsdf912";s:4:"salt";s:64:"53gg8f09bdf5d995c0fbd6f4786d786fafde48dsgd8c338d554t44e095420d9bcegad194d4231";s:8:"hashFunc";s:6:"sha256";}".
    И откуда берётся значение "remember key"?
    Мне надо сделать внешнюю регистрацию и внешнюю смену пароля, но ранее с XenForo не работал. Желательно с примерами генерации. Спасибо.
     
  2. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
  3. Pyroman

    Pyroman Новичок

    Регистрация:
    09.10.12
    Сообщения:
    4
    Симпатии:
    0
    Версия XF:
    1.1.2
    Спасибо за ответ, но я уже смотрел эти темы. После этого сюда и написал. Нашёл алгоритм, при помощи которого можно выделить зашифрованный в двойной sha256 пароль, но вот именно генерацию самого значения колонок data и remember_key не нашёл...
     
  4. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Тогда идите по цепочке. Начинайте с метода actionRegister класса XenForo_ControllerPublic_Register. В этом методе создается датарайтер XenForo_DataWriter_User. А в этом датарайтере происходит магия :). В частности, вас могут заинтересовать методы setPassword и _preSaveDefaults
     
  5. Pyroman

    Pyroman Новичок

    Регистрация:
    09.10.12
    Сообщения:
    4
    Симпатии:
    0
    Версия XF:
    1.1.2
    Скажите мне хотя бы следующее, верно ли я говорю?

    a:3:{s:4:"hash";s:64:"8bbf8acbd1b1954b35ff70f63d170f5dbf487bbd6b8ab007d1cfa0aca32e86ce";s:4:"salt";s:64:"b28aba9f9d234869806c89b71c2bc6207eb3e3ffbc30b9cd27de53744d006756";s:8:"hashFunc";s:6:"sha256";}

    Тут 8bbf8acbd1b1954b35ff70f63d170f5dbf487bbd6b8ab007d1cfa0aca32e86ce - сам хэшированный с солью пароль, b28aba9f9d234869806c89b71c2bc6207eb3e3ffbc30b9cd27de53744d006756 - соль. И remember_key - не знаю что такое.
     
  6. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    То, что вы приводите — это сериализованный массив, содержащий 3 поля:
    1. hash — хэш пароля и соли, создается во формуле хэш_функция(хэш_функция(пароль) + соль)
    2. salt — хэш соли, создается по формуле хэш_функция(рандомная_строка_из_10_символов)
    3. hashFunc — хэш_функция.
    Все это доступно в классе XenForo_Authentication_Core. За генерацию соли отвечает метод XenForo_Application::generateRandomString.

    remember_key — 40-символьная строка рандомных символов, используящаяся для логина юзера через куки.

    Я как-то ожидал, что раз перед вам стоит задача написания внешней регистрации, то вы более-менее разбираетесь в теме... Но, видимо, я ошибся.
     
  7. Pyroman

    Pyroman Новичок

    Регистрация:
    09.10.12
    Сообщения:
    4
    Симпатии:
    0
    Версия XF:
    1.1.2
    Уже давно разобрался, нашёл где была ошибка.
    У меня просто никогда не было опыта работы с XenForo.
     

Поделиться этой страницей