Хешування паролів в php 5

У даній статті ми розповімо про основи використання нового API для хешування в PHP. Даний спосіб хешування паролів спростить Вам життя на стільки, на скільки це можливо. Беремо наш пароль -> отримуємо хеш -> записуємо в базу. Ніяких зайвих маніпуляцій.

• password_hash () - використовується для хешування пароля.
• password_verify () - використовується для перевірки пароля на відповідність хешу.
• password_needs_rehash () - використовується для перевірки необхідності створити новий хеш.
• password_get_info () - повертає ім'я алгоритму хешування і різні параметри, які використовуються при хешування.

Ось так легко і просто. Першим параметр - рядок пароля, який необхідно захешіровать, а другий параметр визначає алгоритм, який повинен бути використаний для генерування хеша.

Алгоритм за замовчуванням, в даний час, BCrypt, але сильніший алгоритм може бути встановлений за замовчуванням, коли-небудь в майбутньому, і, можливо, він буде генерувати великі рядки. Якщо ви використовуєте PASSWORD_DEFAULT, обов'язково зберігайте хеш в колонці, розміром більше 60 символів. Найкраще встановити розмір 255. Також можете використовувати PASSWORD_BCRYPT в якості другого параметра. В цьому випадку результат завжди буде 60 символів.

Отже, якщо Вам здалося цього мало, можете використовувати свою власну сіль
Готово.

Тепер перевіримо вводиться користувачем пароль. Все що нам потрібно - це взяти хеш пароля з нашої бази і порівняти його з введеним паролем.

password_needs_rehash ()
Функція password_needs_rehash () перевіряє, чи використовує хеш пароля конкретний алгоритм, сіль і вартість обчислення.
Дану операцію можна робити при вході користувача в систему, адже тільки тоді ми отримуємо доступ до паролю в явному вигляді.

password_get_info ()
Функція password_get_info () приймає хеш і повертає асоціативний масив з трьох елементів:
• algo - константа, яка ідентифікує конкретний алгоритм
• algoName - назва використовуваного алгоритму
• options - різні опції, які використовуються при генерації хеша