Многие из Вас прекрасно понимают, что хранить пароли в открытом виде в базе данных - крайне глупо . Если злоумышленник каким-то образом получит доступ к таблице с пользователями, то у него будет полная база паролей. А учитывая, что большинство пользователей имеют 1 пароль для всех сайтов, последствия могут быть печа...

Шифрование паролей пользователей на сайте

Многие из Вас прекрасно понимают, что хранить пароли в открытом виде в базе данных - крайне глупо. Если злоумышленник каким-то образом получит доступ к таблице с пользователями, то у него будет полная база паролей. А учитывая, что большинство пользователей имеют 1 пароль для всех сайтов, последствия могут быть печальными, а всё по Вашей вине. Есть, конечно, MD5-хэширование, но оно не даёт 100% гарантии, что пароли не будут расшифрованы. Почему это так и как правильно шифровать пароли пользователей на сайте, Вы узнаете из этой статьи.

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

Но Вы должны понимать, что десятки миллионов паролей - это капля в море, подобно размерам небольшого города и Вселенной. Но проблема в том, что в этом "городе" хранятся самые популярные пароли. Таким образом, несмотря на MD5-хэширование паролей у пользователей, всё-таки многие пароли всплывут. Однако, из этого есть выход.

Простеший способ, который защитит Вас от кражи паролей на 99.99% - это хэширование не просто пароля, но и некого секретного слова:

<?php
  $secret = "Xdgd99DFd9Z"; // Секретное слово
  $password = "123"; // Пароль
  echo md5($password.$secret); // Результат хэширования
?>

Теперь, несмотря на тривиальность пароля, по хэшу его будет невозможно угадать. Ваша же задача, как Администратора, подобрать такое секретное слово, чтобы его гарантированно не было в этих базах. Для этого достаточно произвольным образом нажимать клавиши на клавиатуре. И данное слово надо сохранить в конфигурационном файле сайта, чтобы всегда к нему был доступ. Также можно не бояться, что злоумышленник узнает это слово, оно ему всё равно не поможет. Само слово запоминать Вам не нужно.

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