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

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

PASSWORD_BCRYPT (string)

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

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

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

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

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

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

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

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.

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

PASSWORD_ARGON2ID (string)

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

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

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (тип int)

Количество памяти по умолчанию (в байтах), которую может использовать библиотека Argon2lib для вычисления хеша.

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

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

Ограничение времени по умолчанию на генерацию хеша библиотекой Argon2lib.

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

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Количество потоков по умолчанию для библиотеки Argon2lib.

Доступно с PHP 7.2.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).