Расширение и использование кода генерации соли для системы входа в систему php
Я работаю над системой входа php/mysql для веб-проекта. После просмотра SO и множества статей в Интернете я придумал базовую структуру и начал писать для нее некоторый код. Однако я зашел в тупик в шифровании паролей.
После ночного чтения я узнал, что:
- Я должен пароль пользователя с хотя бы sha1 или sha2
- Я должен также использовать случайно сгенерированную соль (это то, что мне нужно помочь) и добавить его к паролю перед шифрованием
- хешированный пароль и случайно сгенерированная соль должны храниться в базе данных, а затем запрашиваться и комбинироваться / шифроваться, а затем сверяться с хешированным паролем пользователя.
Моя проблема заключается в случайном генерировании соли,
2 ответа
Возможности, которые я могу придумать:
Используйте mt_rand() в цикле, чтобы выбрать ASCII-код, получить соответствующий символ с помощью chr () и объединить с солью.
Это позволяет создавать соли любой длины.
Определите строку с доступными символами, используйте mt_rand() в цикле, чтобы выбрать из нее случайные позиции, извлеките символ в выбранной позиции с помощью substr() или mb_substr() и объедините с солью.
Это позволяет создавать соли с выбранным набором символов и длиной.
Используйте встроенную функцию, которая генерирует случайную строку (например, uniqid ()) и при необходимости ее хеширует.
Это быстро и просто.
Я обычно использую второй вариант.