Расширение и использование кода генерации соли для системы входа в систему php - PullRequest
0 голосов
/ 15 марта 2012

Я работаю над системой входа php / mysql для веб-проекта. Посмотрев SO и множество статей в Интернете, я придумал базовый фреймворк и начал писать для него некоторый код. Однако я зашел в тупик в шифровании пароля.

После ночного чтения я обнаружил, что:

  • Я должен пароль пользователя, по крайней мере, sha1 или sha2
  • Я также должен использовать случайно сгенерированную соль (вот с чем мне нужна помощь) и добавить ее к паролю перед ее шифрованием
  • хешированный пароль и случайно сгенерированная соль должны храниться в базе данных, а затем запрашиваться и комбинироваться / шифроваться, а затем сверяться с хешированным паролем пользователя.

Моя проблема заключается в случайном генерировании соли,

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Возможности, которые я могу придумать:

  • Использование mt_rand () в цикле для выбора кода ASCII, получить соответствующий символ с chr () и объединить с солью.

    Это позволяет создавать соли любой длины.

  • Определить строку с доступными символами, использовать mt_rand () в цикле для выбора случайных позиций из него, извлечения символа в выбранной позиции с помощью substr () или mb_substr () и объединить в соль.

    Это позволяет создавать соли с выбранным набором символов и длиной.

  • Использовать встроенную функцию, которая генерирует случайную строку (например, uniqid () ) и, при необходимости, хэш.

    Это быстро и просто.

Я обычно использую второй вариант.

0 голосов
/ 15 марта 2012
...