⊗ppPmAuHs 423 of 447 menu

Хеширане на парола в PHP

Да се съхранява парола в чист вид е неправилно. Хакер-злоумишленик може да получи достъп до вашата база данни и да открадне паролите.

Затова обикновено логинът се съхранява в чист вид, а паролата се хешира със специална функция md5, която приема паролата като параметър и връща нейния хеш, от който не може да се възстанови самата парола.

Нека, например, намерим хеша на някакъв низ:

<?php echo md5('12345'); // ще изведе '827ccb0eea8a706c4c34a16891f84e7b' ?>

Сега трябва да преработим нашата регистрация и нашата авторизация. Първо бих препоръчал да изчистите таблицата с потребители, тъй като там в момента се съхраняват пароли в чист вид, а трябва да се съхраняват техните хешове. След това при тестване на регистрацията таблицата ще се попълни с данни в новия формат.

Нека сега поправим нашата регистрация така, че при запазване на нов потребител в базата да се добавя не паролата, а нейният хеш.

Описаната корекция ще представлява нещо такова:

<?php $login = $_POST['login']; $password = md5($_POST['password']); // преобразуваме паролата в нейния хеш $query = "INSERT INTO users SET login='$login', password='$password'"; ?>

Нека внесем аналогични корекции в авторизацията:

<?php $login = $_POST['login']; $password = md5($_POST['password']); // преобразуваме паролата в нейния хеш $query = "SELECT * FROM users WHERE login='$login' AND password='$password'"; ?>

Внесете промени в регистрацията, като вземете предвид хеширането, регистрирайте няколко нови потребителя, уверете се, че те са добавени в базата данни с хеширани пароли.

Внесете промени в авторизацията, като вземете предвид хеширането, опитайте се да се авторизирате с регистрираните по-рано потребители.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне