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