<MyRusakov.ru />

Создание Интернет-магазина на PHP и MySQL

Создание Интернет-магазина на PHP и MySQL

Видеокурс "Создание Интернет-магазина на PHP и MySQL" - это уникальный курс по созданию Интернет-магазина с нуля. Особенностью данного курса является то, что создание идёт с самого начала, то есть от идеи. Далее создаётся дизайн всех необходимых страниц, после делается их вёрстка. Затем создаётся движок на PHP и MySQL, после делается Admin-панель и, наконец, готовый сайт размещается в Интернете.

Адрес созданного в этом курсе сайта: http://storedvd.ru

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

MD5 хэширование в PHP

MD5 хэширование в PHP

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

Функция MD5 хэширования в PHP называется md5(). Принимает функция одну строку, которую необходимо зашифровать. Функция возвращает MD5 хэш:

<?php
  $str = "MyPassword";
  echo md5($str);
?>

  Запустив данный скрипт, Вы увидите MD5-хэш, соответствующий строке "MyPassword".

  То есть простейший скрипт проверки логина и пароля:

<?php
  $login = "Admin";
  $password = "48503dfd58720bd5ff35c102065a52d7"; //В реальности считывается из БД
  if (($_GET['login'] == $login) && (md5($_GET['password']) == $password)) echo "Welcome!";
  else echo "Access denied";
?>

Теперь если Вы пройдёте по ссылке: "http://путь_к_скрипту.php?login=Admin&password=MyPassword", то увидите: "Welcome!".

Теперь поговорим о свойствах MD5-хэширования.

  1. MD5-хэш содержит 32 символа
  2. MD5-хэш уникален для каждой строки
  3. Процесс MD5-хэширования необратим
  4. Процесс MD5-хэширования достаточно медлителен

Третий пункт, пожалуй, самый важный, потому что если бы он был обратим, то смысл хэширования практически бы отсутствовал. Глупо шифровать, например, пароли, если их можно легко потом расшифровать.

Четвёртый пункт, как бы это парадоксально не звучало, также является очень большим плюсом. Почему? Очень просто: человек, который будет вынужден подождать этот процесс 0.001 секунды, сильно не пострадает. А вот злоумышленник, который будет перебирать пароли пострадает резко, так как медлительность алгоритма уже задаёт предел - 1000 паролей в секунду. Хотя, безусловно, скорость зависит от быстродействия сервера. Но тем не менее, для злоумышленника низкая скорость получения MD5-хэша - это очень большая проблема.

На будущее: никогда не храните пароли в открытом виде, забудьте об этом раз и навсегда. Поэтому всегда отправляйте пароли в базу данных в виде MD5-хэша, и, соответственно, сравнивайте хэши паролей, а не сами пароли.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (6):

ArturPanteleev ArturPanteleev 10.06.2012 14:00:45

А у меня такой вопрос: не могу сообразить как сделать напоминание пароля, если он хранится в md5. То есть я понимаю что нужно сделать как у вас на сайте, чтобы выдавалась одноразовая ссылка на изменение пароля, но как ее сгенерировать?

Ответить

Admin Admin 10.06.2012 14:07:07

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

Ответить

ArturPanteleev ArturPanteleev 10.06.2012 14:08:00

Хорошо, спасибо.

Ответить

AntDant AntDant 14.06.2013 10:31:14

Михаил, а ведь сейчас можно расшифровать md5 !

Ответить

Logan22 Logan22 02.07.2013 22:42:06

Нет, Антон. Расшифровать невозможно. Возможно только сбрутить хэш.

Ответить

asffix asffix 27.12.2014 12:51:56

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

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.