PHP 8.4.2 Released!

sodium_crypto_pwhash_scryptsalsa208sha256

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256Получает ключ из пароля функцией scrypt

Описание

sodium_crypto_pwhash_scryptsalsa208sha256(
    int $length,
    #[\SensitiveParameter] string $password,
    string $salt,
    int $opslimit,
    int $memlimit
): string

Функция работает аналогично функции 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 и SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE. Обычно они должны сочетаться с значениями параметра opslimit, которые соответствуют константам.

Возвращаемые значения

Функция возвращает строку байтов требуемой длины.

Добавить

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

up
0
Anonymous
2 months ago
Function is expecting salt length to be EXACTLY SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES bytes. It throws error if you provide longer salt string. For example: salt of 64 bytes will throw an error.
To Top