hash_pbkdf2
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
hash_pbkdf2 - Формування ключа PBKDF2 для заданих вхідних даних
Опис
hash_pbkdf2( string $algo, string $password, string $salt, int $iterations, int $length = 0, bool $binary = false): string
Список параметрів
algo
Ім'я обраного алгоритму хешування (наприклад, md5
sha256
haval160,4
і т.д.) Список підтримуваних алгоритмів можна переглянути в описі функції hash_algos()
password
Пароль, що використовується для формування.
salt
Сіль, що використовується для формування ключа. Значення необхідно генерувати випадковим чином.
iterations
Кількість ітерацій на формування ключа.
length
Довжина рядка, що генерується. Якщо параметр binary
задан как**true
, то цей параметр дорівнює кількості байт у ключі, що генерується. Якщо binary
установлен какfalse
**, то довжина ключа в байтах буде вдвічі менша, тому що кожен байт ключа буде повернутий у вигляді двох символів шістнадцяткової системи (0-F).
Якщо поставлено як , то використовується весь висновок заданого алгоритму.
binary
Если установлено**true
**, то висновок буде необроблені бінарні дані, а якщо false
, то висновок буде представлений у вигляді рядка шістнадцяткових цифр у нижньому регістрі.
Значення, що повертаються
Повертається рядок містить сформований ключ у вигляді рядка шістнадцяткових чисел у нижньому регістрі. Але якщо параметр binary
установлен как**true
**, то буде повернуто сирі бінарні дані.
Помилки
Викидається виняток ValueErrorякщо заданий алгоритм некоректний, параметр iterations
менше або дорівнює , параметрlength
меньше чем або якщо salt
дуже довгий (більше ніж INT_MAX
- 4
список змін
Версия | Опис |
---|---|
8.0.0 | Тепер викидається винятокValueError у разі виникнення помилки; раніше поверталося значення false і видавалася помилка рівня E_WARNING |
7.2.0 | Заборонено використання некриптографічних функцій (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat). |
Приклади
Приклад #1 Приклад простого використання hash_pbkdf2()
Loading...
Висновок наведеного прикладу буде схожим на:
string(20) "120fb6cffcf8b32c43e7"
string(20) "120fb6cffcf8b32c43e7"
Примітки
Застереження
Метод PBKDF2 може бути використаний для хешування паролів з метою їх зберігання. Однак варто пам'ятати, що для цих цілей краще використовувати password_hash() або crypt()с**CRYPT_BLOWFISH
**
Дивіться також
- password_hash() - Створює хеш пароля
- hash_hkdf() - Формування ключа HKDF для заданих вхідних даних
- sodium_crypto_pwhash() - Отримує ключ із пароля, використовуючи Argon2