Предопределённые константы

Перечисленные ниже константы доступны как часть ядра PHP.

PASSWORD_BCRYPT (string)

PASSWORD_BCRYPT используется для создания новых хешей паролей используя алгоритм CRYPT_BLOWFISH.

Результат всегда представляет из себя хеш формата "$2y$" длиной 60 символов.

Поддерживаемые опции:

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

    Если не задано, то для каждого хешируемого пароля будет создана случайная соль с помощью функции password_hash(). Это является предпочтительным способом, а с PHP 7.0.0 опция salt объявлена устаревшей.

  • cost (int) - алгоритмическая стоимость, которую следует использовать. Примеры использования этого значения смотрите на странице описания функции crypt().

    Если не задано, то будет использовано значение 10. Это хорошая базовая стоимость, но вы всегда можете её увеличить в зависимости от имеющихся в вашем распоряжении вычислительных ресурсов.

PASSWORD_BCRYPT_DEFAULT_COST (int)

PASSWORD_ARGON2I (string)

PASSWORD_ARGON2I используется для создания новых хешей паролей с помощью алгоритма Argon2i.

Поддерживаемые опции:

  • memory_cost (int) - Максимальный размер памяти (в кибибайтах), которую можно использовать для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) - Максимально возможное время которое можно потратить для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) - Количество потоков, которые можно использовать для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_THREADS. Доступно только с libargon2, но не с реализацией libsodium.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2ID (string)

PASSWORD_ARGON2ID используется для создания хешей паролей с помощью алгоритма Argon2id. Поддерживаются те же опции, что и для PASSWORD_ARGON2I.

Доступно с PHP 7.3.0.

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (тип int)

Объем памяти в байтах по умолчанию, который будет использоваться при попытке вычислить хеш.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

Ограничение времени по умолчанию на вычисление хеша.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Количество потоков по умолчанию для библиотеки Argon2lib. Недоступно с реализацией libsodium.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2_PROVIDER (string)

Доступна с PHP 7.4.0.

PASSWORD_DEFAULT (mixed)

Алгоритм хеширования по умолчанию, если не задан принудительно. Может быть изменён в более новых версиях PHP на более надёжный алгоритм.

Стоит отметить, что со временем эта константа может (и, вероятно, так и будет) измениться. Так что имейте в виду, что длина полученного хеша может измениться. Помните, что если вы используете PASSWORD_DEFAULT, то предусмотрите для хранения хешей больше чем 60 символов (рекомендуется 255).

Значения для этой константы:

  • PHP 5.5.0 - PASSWORD_BCRYPT

Список изменений

Версия Описание
7.4.0 Значения идентификаторов алгоритма пароля (PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID и PASSWORD_DEFAULT) теперь являются строками (string). Ранее они были числами (int).

add a note add a note

User Contributed Notes 2 notes

up
0
Daniel
7 years ago
The salt option has been deprecated as of PHP 7.0.0. It is now preferred to simply use the salt that is generated by default. -
- http://php.net/manual/pt_BR/function.password-hash.php
up
-22
renan at tecdicas dot com
8 years ago
The salt option has been deprecated as of PHP 7.0.0.
To Top