Перечисленные ниже константы доступны как часть ядра 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).
Значения для этой константы:
PASSWORD_BCRYPT
Версия | Описание |
---|---|
7.4.0 | Значения идентификаторов алгоритма пароля (PASSWORD_BCRYPT , PASSWORD_ARGON2I , PASSWORD_ARGON2ID и PASSWORD_DEFAULT ) теперь являются строками (string). Ранее они были числами (int). |