Что такое MD5 и как применять его на практике

prw_170x_of_73c0e81d2ed5e89fccfa31a7cbaff195 (Message Digest 5) — алгоритм хэширования (преобразование входного массива данных в короткое число фиксированной длины? которое называется хешем или хеш-кодом), разработанный профессором Рональдом Л. Ривестом в 1991 году. Предназначен для создания «отпечатков» или «дайджестов» сообщений произвольной длины.

Что такое однонаправленное шифрование? Это когда слово шифруется по какому-то алгоритму, а расшифровать его обратно нельзя — слишком моного возможных комбинаций или другая причина.

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

$login = $_POST['login'];
$hash = md5 ($_POST['password']);
mysql_query (”INSERT INTO table VALUES (0, ‘$login’, ‘$hash’);”)

Теперь, когда пользователь заходит в свой аккаунт, нужно проверять хеш из базы с хешем введенного пароля, который мы создаем “на лету”. Например так:

$login = $_POST['login'];
$pass = $_POST['password'];
$user = mysql_fetch_array (mysql_query (”SELET * FROM table WHERE login=’$login’;”));
if ($user['hash'] == md5 ($pass)){ /* вошли успешно */}

Конечно, я тут не проверял входящие данные и не проверял ошибки. Кстати, MySQL тоже понимает MD5, поэтому код выше можно переписать так, оставив только запрос:

$login = $_POST['login'];
$pass = $_POST['password'];
$user = mysql_fetch_array (mysql_query (”SELET * FROM table WHERE login=’$login’ AND hash=MD5 (’$pass’);”));

Запись навигация

Top