(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_pwhash_scryptsalsa208sha256 — Получает ключ из пароля, используя scrypt
$length
,$password
,$salt
,$opslimit
,$memlimit
Аналог функции scrypt sodium_crypto_pwhash().
Распространённая причина использования этой конкретной функции - получить начальные числа для криптографических ключей из пароля и соли, а затем использовать эти начальные числа для генерации фактических ключей, необходимых для некоторых целей (например, sodium_crypto_sign_detached()).
length
Длина генерируемого хеша пароля в байтах.
password
Пароль, для которого создаётся хеш.
salt
Соль, которую нужно добавить к паролю перед хешированием. Соль должна быть непредсказуемой, в идеале сгенерированной из хорошего источника случайных чисел, такого как random_bytes(), и иметь длину не менее SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
байт.
opslimit
Представляет максимальное количество вычислений для выполнения. Увеличение этого числа приведёт к тому, что функции потребуется больше циклов ЦП для вычисления ключа.
Доступны некоторые константы для установки предела операций на соответствующие значения в зависимости от предполагаемого использования, в порядке размера: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
и SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
.
memlimit
Максимальный объем ОЗУ, который будет использовать функция, в байтах. Существуют константы, которые помогут вам выбрать подходящее значение в порядке их размера: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
and SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
.
Обычно они должны сочетаться с соответствующими значениями opslimit
.
Строка байтов желаемой длины.