sodium_crypto_pwhash_str
(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_pwhash_str — Отримати ASCII-кодований хеш
Опис
sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit): string
Використовує ресурсомісткий за ЦПУ та пам'яті алгоритм хешування. Сіль генерується випадково. Можна встановити обмеження щодо використання пам'яті та ЦПУ. Можна використовувати для генерації ASCII-хешів, що підходять для зберігання паролів.
Список параметрів
password
string; Пароль, для якого генеруватиметься хеш.
opslimit
Задає обмеження використання процесорного часу. Чим більше число - тим більше навантаження на процесор при генерації ключа. Також можна використовувати певні константи для цього параметра (перераховані у порядку посилення захищеності та споживання ЦПУ): SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE
і SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
memlimit
Задає обмеження використання пам'яті в байтах. Можна використовувати певні константи для цього параметра (перераховані в порядку посилення захищеності та споживання пам'яті): SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE
і SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
. Має сенс використовувати однакові рівні захищеності в memlimit та opslimit.
Значення, що повертаються
Повертає хеш пароля.
Для того, щоб для того самого пароля завжди генерувався один і той же хеш, необхідно використовувати однакові значення opslimit
иmemlimit
. Оскільки ці параметри включені в згенерований хеш, функція sodium_crypto_pwhash_str_verify() може перевіряти його коректність без необхідності зберігати ці параметри окремо.
Приклади
Приклад #1 Приклад використання sodium_crypto_pwhash_str()****
Loading...
Висновок наведеного прикладу буде схожим на:
$argon2id$v=19$m=65536,t=2,p=1$oWIfdaXwWwhVmovOBc2NAQ$EbsZ+JnZyyavkafS0hoc4HdaOB0ILWZESAZ7kVGa+Iw
Примітки
Зауваження :
Хеші обчислюються за допомогою алгоритму Argon2ID, стійкого для атак стороннього каналу та GPU. На відміну від функції password_hash(), ця функція не має параметра salt (він генерується автоматично), а параметри
opslimit
иmemlimit
є обов'язковими.
Дивіться також
- sodium_crypto_pwhash_str_verify() - Перевіряє, що пароль відповідає хешу
- sodium_crypto_pwhash() - Отримує ключ із пароля, використовуючи Argon2
- password_hash() - Створює хеш пароля
- password_verify() - Перевіряє, чи пароль хешу відповідає
- » Документація на Libsodium Argon2