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

1.1.1 БД MySQL в какой колонке хранится пароли?

Тема в разделе "Для новичков", создана пользователем TTATPuOT, 14.02.2012.

Загрузка
  1. TTATPuOT

    TTATPuOT Пользователь

    Регистрация:
    10.01.12
    Сообщения:
    15
    Симпатии:
    0
    Версия XF:
    1.1.1
    Нужно обвязать с другим сервисом (не суть) и там надо указать колонку до паролей пользователя. По идее она должна быть в Таблице xf_user но там что то не нашёл. Как быть?
     
  2. carliker

    carliker Местный

    Регистрация:
    03.10.11
    Сообщения:
    274
    Симпатии:
    114
    Версия XF:
    1.1.1
    Пароли там храшяться в зашифровоном виде, причем шифруются они досточно сложно. Храняться если не ошибаюсь тут: xf_user_authenticate

    Поэтому, прежде чем юзайть их для своих целей, придется расшифровать.
     
    TTATPuOT нравится это.
  3. Pepelac

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

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Их нельзя расшифровать.
     
    TTATPuOT нравится это.
  4. carliker

    carliker Местный

    Регистрация:
    03.10.11
    Сообщения:
    274
    Симпатии:
    114
    Версия XF:
    1.1.1
    Почему нельзя?
     
  5. Pepelac

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

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Потому что применяются необратимые методы шифрования для которых не существуют методов расшифровки. Только методом перебора
     
    carliker нравится это.
  6. carliker

    carliker Местный

    Регистрация:
    03.10.11
    Сообщения:
    274
    Симпатии:
    114
    Версия XF:
    1.1.1
    Все ясно, спасибо за объяснение.
     
  7. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Начнем с того, что там не зашифрованные пароли, а хеши паролей. Если не знаете, что такое хеш, то лучше сначала, к примеру, погуглить на эту тему.
    А к вопросу хранения информации для аутентификации, то сейчас считается правилом плохого тона хранить пароли в чистом виде, да даже и в зашифрованном. Хеширование позволяет произвести аутентификацию путем сверки хеша переданных данных с хешем, хранящимся в базе данных. Т.е. хеш-функция от одних и тех же данных даст уникальный набор хеш-данных. Это и применяется. Фактически получается примерно следующее:
    Код:
    f - хеш-функция (необратимая, т.е. не позволяющая восстановить первоначальные данные),
    pass - введенный пользователем пароль
    data - хеш пароля
    data = f(pass)
    Таким образом, при вводе пароля пользователем, достаточно повторить ту же последовательность и сверить полученный data с тем, что хранится в базе данных.
    Пример хеша можно увидеть в том же DC (DirectConnect), который часто используется в локальных сетях в качестве файлообмена и чата. Т.е. каждый файл имеет свой некоторый хеш, который уникален при одном и том же размере файла. Когда пользователю требуется скачать какой-то файл, то достаточно знать только хеш файла. Другие пользователи, которые имеют у себя файл с таким хешем, независимо от имени файла, при запросах хеша сообщаются, что у них есть файл с таким хешем. Получается достаточно быстро сверить наборы данных и начать процесс скачки. В то же время из хеша невозможно получить какой-либо набор данных для восстановления оригинального файла. Надеюсь, что понятно объяснил.
     
    carliker нравится это.

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