Intereting Posts
Laravel 5.1 Изменить входные данные перед проверкой запроса формы Директива PHP ini для каждого каталога в зависимости от request_uri PHP не может открывать удаленный файл Ошибка Symfony sf_culture = 1 Автоматическое добавление атрибутов ширины и высоты в теги <img> с помощью функции PHP Как я могу найти все пробелы, исключая те, которые заключены между кавычками? Неустранимая ошибка: имя функции должно быть строкой в ​​/home/User/public_html/website/index.php в строке 7 Как изменить конверт с адреса с помощью PHP-почты? Как отправить переменную в php из javascript и вернуть результат обратно в JS PHP 5.2.x: $ _POST пуст, если какое-либо поле имеет значение «отбрасывать любые слова из любых слов»? PHP: Кириллические (русские) символы повторяются как «Вопросительные знаки». Зачем? 301 Перенаправление htaccess Как я могу перенаправить перенаправление JS? Можно ли использовать cURL для захвата файлов через SSH? Легкая, основанная на PHP, структура макета … знаете что-нибудь?

Какая реализация bcrypt рекомендуется для PHP 5.3?

Хорошо, я, наконец, понимаю bcrypt, как это работает и как его хранить в БД, поэтому я почти готов к работе. Теперь проблема заключается в выборе, какую реализацию bcrypt использовать с PHP 5.3 .

Я схожу с ума, глядя на все различные решения, и я не уверен, какой из них наиболее рекомендуется и безопаснее в использовании, поэтому я снова обращаюсь к вам, ребята.

Вот те, которые я нашел:

1) https://gist.github.com/marcoarment/1053158

2) http://www.openwall.com/phpass/

3) https://stackoverflow.com/a/6337021/869849

4) … что-то еще?

Являются ли они взаимозаменяемыми или производят разные хеши? Мне хотелось бы думать, что, поскольку все они «bcrypt», они будут давать одинаковые результаты, но я не уверен (я тестировал 1) и 2) выше, и они кажутся взаимозаменяемыми, поскольку хэш, полученный 1) проверенным на 2) ).

Итак, какое рекомендуемое решение для PHP 5.3 ?

Solutions Collecting From Web of "Какая реализация bcrypt рекомендуется для PHP 5.3?"

Лучшее решение: вы должны использовать библиотеку паролей, которая встроена для PHP 5.5. Они выпустили версию обратной совместимости для PHP 5.3 и 5.4 под названием password_compat . Однако учтите, что вам понадобится 5.3.7 или новее. Возникла проблема безопасности с bcrypt до 5.3.7, что означает, что новая библиотека не будет работать.

Если вы используете версию до 5.3.7, то лучшим вариантом является пароль Lib от того же автора. Но я бы предложил модернизировать PHP, а не лучший вариант.

Установка

Обе библиотеки можно установить, просто загрузив их, скопировав их в папку своего сайта и включив их основной файл в свой код – т.е. require('password.php'); ,

Установка через Composer также является опцией, если вы используете его.

Использование (Предполагая, что вы собираетесь с паролем_compat):

Чтобы создать пароль:

 $hash = password_hash($password, PASSWORD_BCRYPT); 

Чтобы проверить пароль:

 if (password_verify($password, $hash)) { /* Valid */ } else { /* Invalid */ } 

И это в основном все, что вам нужно знать. Библиотека обрабатывает все остальные детали для вас, как солить пароль и т. Д.

[EDIT] Если вам нужно изменить алгоритм «стоимость» в соответствии с вашим комментарием, добавьте дополнительный параметр к вызову password_hash() чтобы указать его, например:

 password_hash($password, PASSWORD_BCRYPT, array("cost" => 11)); 

Полная документация доступна на странице загрузки, указанной выше.

Очень хорошая идея использования библиотеки password_compat заключается в том, что она специально разработана для того, чтобы иметь тот же API и функциональные возможности, которые встроены в PHP как стандарт в PHP 5.5. Поэтому, если вы используете password_compat, когда находитесь на PHP 5.3 или 5.4, при переходе на PHP 5.5 у вас уже будет правильный код в вашей системе, чтобы использовать новые встроенные функции пароля. Единственное различие заключается в том, что вам не нужно будет include библиотеку.

если вы пытаетесь обновиться до версии PHP 5.5, просмотрите это перед миграцией. В этом руководстве есть очень интересные моменты, которые следует прочитать перед обновлением

Изменения от 5,3 до 5,4 и страница обратной несовместимости заметок выпуска

http://php.net/manual/en/migration54.incompatible.php