PHP 8.4.3 Released!

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

Следующие константы доступны как часть ядра 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 (string)

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

Из-за вероятного изменения значения константы в будущем изменится и длина результирующего хеша. Поэтому хеши, которые получили через константу PASSWORD_DEFAULT, лучше хранить так, чтобы сохранялись хеши произвольной длины. Ширину поля для хранения хешей рекомендуют устанавливать равной 255 байтам.

Эта константа — псевдоним константы PASSWORD_BCRYPT.

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

Версия Описание
7.4.0 Значения идентификаторов алгоритма пароля — PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID и PASSWORD_DEFAULT — стали значениями с типом string. Раньше значения принадлежали типу int.

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top