Всем привет! В этом материале рассмотрим, как сделать шифрование пароля пользователей более сильным для нашего движка на mvc .

Создание движка на 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(), а затем вставите его в базу данных для какого-нибудь пользователя вместо старого хэша и попробуете авторизоваться, то все должно пройти успешно.

На этом все, мы сделали новый алгоритм шифровки, а в следующих статьях будем внедрять его в наш движок, чтобы именно этот способ использовался при регистрации нового пользователя как обычным способом, так и при создании пользователя в базе данных.

Спасибо за внимание!