Всем привет! В этом материале рассмотрим, как сделать шифрование пароля пользователей более сильным для нашего движка на mvc .
Всем привет! В этом материале рассмотрим, как сделать шифрование пароля пользователей более сильным для нашего движка на mvc.
Если вы сейчас зайдете в базу данных, скопируете хэш пароля и вставите его в любом расшифрователе MD5, то увидите свой пароль. Это не есть хорошо, давайте это исправим.
Создадим папку hash в папке libs, в этой папке создадим файл Hash.php
class Hash {
public static function create($algo, $data, $salt) {
$context = hash_init($algo, HASH_HMAC, $salt);
hash_update($context, $data);
return hash_final($context);
}
}
В файле index.php подключим библиотеку.
// ...
require 'libs/Session.php';
require 'libs/Hash.php'
// ...
Создадим файл constants.php в папке config.
define('HASH_KEY', '34398soghso43o4fjdk234l');
Также подключим его в index.php
// ...
require 'config/constants.php';
Теперь откроем файл login_model.php и изменим метод шифровки пароля там.
// ...
':password' =>Hash::create('md5', $_POST['password'], HASH_KEY)
// ...
И, также, немного подправим запрос
... password = :password");
Таким образом мы довольно сильно улучшили безопасность пользователей.
Если вы сейчас сформируете хэш, используя наш метод create(), а затем вставите его в базу данных для какого-нибудь пользователя вместо старого хэша и попробуете авторизоваться, то все должно пройти успешно.
На этом все, мы сделали новый алгоритм шифровки, а в следующих статьях будем внедрять его в наш движок, чтобы именно этот способ использовался при регистрации нового пользователя как обычным способом, так и при создании пользователя в базе данных.
Спасибо за внимание!
