четверг, 9 августа 2007 г.

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

Вот решил написать небольшой урок па шифрованию паролей с помощью md5. Читаем.

Допустим, Вы разработали скрипт, в котором используются какие-либо пароли. Это могут быть пароли зарегистрированных пользователей, пароли доступа в администраторскую панель, какие угодно пароли. Возникает вопрос об их хранении.

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

Если хакер сумеет скачать файл с паролями или получить их при помощи SQL - инъекции, то он будет иметь неограниченный доступ к администраторской панели или к аккаунтам пользователей.

Поэтому пароли нужно шифровать.

Для шифрования паролей в PHP есть замечательная функция md5. Её преимущество состоит в том, что md5 невозможно расшифровать.

Как же тогда использовать md5 шифрование, если его невозможно расшифровать?

На самом деле, всё очень просто. Просто нужно шифровать в md5 введённый пароль и сверять его с зашифрованным паролем из базы или файла.

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

$entered_pass = $_POST['password'];
$entered_pass = md5($entered_pass);
if ($right_pass == $entered_pass)
{
echo "Пароль верен";
// Ваш код
}
else
{
echo "Пароль неверен";
// Ваш код
}


Ну вот и всё. Я надеюсь, эта статья поможет Вам в шифровке паролей.

3 комментария:

Alexvol комментирует...

md5 как раз разшифровуется... так что не надо быть наивным))

Unknown комментирует...

А если использовать двойное шифрование - єто уж наверняка не получится расщифровать

Unknown комментирует...

А если использовать двойное шифрование - єто уж наверняка не получится расщифровать