Хешування паролів за допомогою hash api
На даний момент використання bcrypt - це найкращий спосіб хешування паролів, проте безліч розробників по-старому використовують MD5 і SHA1. Багато з них, не застосовують техніку додавання солі. У PHP 5.5 вирішили акцентувати увагу розробників на алгоритмі bcrypt і створили спеціальний хеш API.
Хеш API складається з наступних функцій:
- password_hash () - для генерації хеша пароля.
- password_verify () - перевірка пароля.
- password_needs_rehash () - використовується коли потрібно перегенеріровать хеш.
- password_get_info () - повертає назву алгоритму і іншу інформацію.
password_hash ()
Використання функції crypt () у багатьох викликає ступор через складність, тому замість неї застосовуються спрощені способи створення хеша. Наприклад:
Функція password_hash () спрощує цей процес настільки, наскільки це можливо. Якщо вам потрібно створити хеш пароля, викличте цю функцію і запишіть значення в базу даних.
От і все! Перший параметр - це рядок представляє собою пароль; другий - алгоритм, який буде застосований.
Алгоритм, який використовується за умовчанням - bcrypt, але в майбутньому будуть додані і інші, більш просунуті алгоритми. Якщо ви використовуєте PASSWORD_DEFAULT, то знайте, що на виході отримаєте рядок з понад 60 символів. Вона може бути і більше, особливо, при використанні інших алгоритмів, так що в таблиці розмір поля можете виставити 255. В якості другого параметра, ви можете використовувати константу PASSWORD_BCRYPT. В цьому випадку, розмір рядка на виході буде рівно 60 символів.
Важливо зрозуміти, що вам самим не потрібно передавати сіль або параметр cost (вартість - кількість раундів підготовки ключів). Новий API зробить це за вас. Але якщо ж ви хочете самі задати дані параметри, то можете зробити це в такий спосіб.
password_verify ()
Тепер, коли ви знаєте як генерувати хеш, давайте подивимося на те, як здійснювати перевірку.
Функція password_verify () приймає пароль в звичайному вигляді і його хеш. Залежно від результатів перевірки, повертає true або false.
Зауважте, що сіль знаходиться в самому хеше, так що нам не потрібно вказувати її вручну.
password_needs_rehash ()
Що якщо вам потрібно оновити установки солі або вартості? Або змінилися налаштування хешування PHP? В цьому випадку, можете скористатися функцією password_needs_rehash () для перевірки даного факту.
Дану операцію можна робити при вході користувача в систему, адже тільки тоді у нас є доступ до паролю в явному вигляді.
password_get_info ()
password_get_info () повертає параметри хешування:
- algo - константа з назвою алгоритму
- algoName - назва алгоритму
- options - різні настройки
висновок
5 останніх уроків рубрики "PHP"
Коли мова йде про безпеку веб-сайту, то фраза "фільтруйте все, екрануйте все" завжди буде актуальна. Сьогодні поговоримо про фільтрації даних.
Expressive 2 підтримує можливість підключення інших ZF компонент за спеціальною схемою. Не всім подобається це рішення. У цій статті ми розповімо як поліпшили процес підключення декількох модулів.
Припустимо, що вам необхідно відправити якусь інформацію в Google Analytics з серверного скрипта. Як це зробити. Відповідь в цій замітці.
Підбірка з декількох видів PHP пісочниць. На деяких ви в режимі online зможете потестить свій код, але є так само рішення, які можна впровадити на свій сайт.

За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!


Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!

Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.

Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!