Как сделать абсолютно оригинальную соль для каждого пользователя? Лучше ли использовать функцию time()
в PHP?PHP лучший способ солить пароль в наше время
ответ
Во многих случаях простой uniqid(mt_rand(), true)
будет делать, чтобы генерировать случайные соли. В сочетании с Blowfish вы должны получить довольно хороший хэш пароля.
Альтернативы представляют собой псевдослучайный источник, такой как /dev/urandom
или openssl_pseudo_random_bytes()
. Существуют также службы, которые генерируют случайные данные для вас (основанные на радиоактивной деградации).
Рассмотрите возможность использования случайных соль вместо неслучайное .. Может быть, вы найдете что-то полезное в этой статье http://www.gregboggs.com/php-blowfish-random-salted-passwords/
Также обратите внимание на эту статью http://codahale.com/how-to-safely-store-a-password/
Один подход заключается в генерации уникальная соль для каждого пользователя и хранить эту соль в DB.
Другим хорошим подходом является то, что алгоритм , который генерирует хэш вашего пароля, ДОЛЖЕН рассчитать соль более секунды. Чем сложнее ваш алгоритм хэширования будет - тем больше проблем будут сталкиваться с человеком, который хочет взломать ваш DB
Я не понимаю, что вы подразумеваете под «ДОЛЖНЫ рассчитать соль более секунды». Вы имеете в виду, что для выполнения потребуется больше секунды? Пожалуйста, уточните это. – nullability
@ необузданность да, дольше, чем секунда для выполнения – Ribtoks
использовать эту линию для создания сильной соли в PHP
$salt = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
Вы можете использовать microtime()
функции в PHP для генерировать число, основанное на микросекундах, а не секунды, что делает почти невозможным для пользователя иметь равную соль с другим пользователем. Вы также можете умножить этот номер на идентификатор пользователя.
Возможно, md5(uniqid())
достаточно для соли для вашего применения.
Редактировать: забыли указать параметр more_entropy с помощью функции uniqid()
. Это меньше, шансы же строк, даже если функция запускает два раза, в то же микросекунду, поэтому отредактированные функция должна выглядеть следующим образом:
$salt = md5(uniqid($user_id, TRUE));
- 1. Что такое лучший способ солить пароль?
- 2. Солить пароль в SQL Server
- 3. Солить пароль с помощью пароля
- 4. Как солить и хешировать пароль
- 5. Лучший способ защитить пароль SQL
- 6. Солить пароль с весной 3 Безопасность
- 7. Лучший способ поиска утерянных пароль
- 8. TypeError: не солить время объекты
- 9. Лучший способ сохранить пароль в памяти ежевики
- 10. Лучший способ хранить пароль в базе данных
- 11. Лучший способ представлять время
- 12. Солить пароль - есть ли лучшие варианты, чем использовать временную метку?
- 13. Лучший способ для кодирования паролей в PHP
- 14. Солить мои хэши с PHP и MySQL
- 15. Как легко солить пароль в приложении формы Windows C#?
- 16. PHP: лучший способ конвертировать дату и время в строку времени?
- 17. Лучший способ сохранить время недели
- 18. Солить хэш для аутентификации открытого текста (НЕ пароль)
- 19. Лучший способ получить абсолютное время?
- 20. Лучший способ узнать PHP
- 21. Лучший способ расчета UTC время
- 22. Какой способ входа в PHP - лучший способ?
- 23. Лучший способ отображения результатов во время цикла
- 24. PHP Лучший способ остановить конструктор
- 25. Лучший способ обновить переменную PHP?
- 26. лучший способ постоянно обновлять время в android
- 27. Лучший способ сохранить время суток в Mongoose
- 28. Лучший способ рассчитать человекообразное прошедшее время
- 29. Лучший способ сохранить информацию во время сеанса PHP
- 30. Лучший способ защитить php-файлы вашего сайта
Я думаю, что это openssl_random_pseudo_bytes() из [link] (http://php.net/openssl_random_pseudo_bytes) –