Здравствуйте! В голове набросал алгоритм авторизации на сайте
1. В БД MySQL хранится логин пользователя и MD5 хеш его пароля
2. В скрипте login.php пользователь вводить логин и пароль, при нажатии кнопки "Отправить" форма отправляется на сервер методом POST.
3. Затем, в скрипте вычисляется значение хэша MD5 для строки, которую мы передали на втором этапе
4. Скрипт подключается к БД, находит хэш пароля нужного пользователя, записывает хэш в переменную, затем сравниваются хэш введённого в форме пароля, и хэш пароля из БД.
5. Если хэши совпадают - в сессии появляется новая переменная $authorized = 1
На "секретной" странице стоит проверка - если $authorized = 1,то отобразить страницу, в противном случае - переадресация на страницу с авторизацией.
Для правильного вопроса надо знать половину ответа
Не надо читать хэш из базы, надо просто искать в базе строку с указанными логином и хэшем пароля.
Если сайт работает по http, а не https, то надо дополнительно шифровать пароль на стороне клиента разовым асимметричным ключом, передаваемым с сервера.
- пользователь нажал "Вход"
- скрипт клиента послал запрос на ключ
- сервер сгенерировал пару ключей, послал клиенту открытый ключ
- клиент зашифровал пароль полученным ключом, передал логин и зашифрованный пароль на сервер
- сервер расшифровал пароль закрытым ключом