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