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'";
?>
Регистрацияга хештоону эске алып, өзгөртүүлөрдү киргизиңиз, бир нече жаңы колдонуучуларды каттаңыз, алардын маалымат базасына хештелген парольдор менен кошулганына көзүңүз менен ишенгиле.
Кирүүгө хештоону эске алып, өзгөртүүлөрдү киргизиңиз, мурун катталган колдонуучулар менен кирүүгө аракет кылып көрүңүз.