, что происходит с данными, когда пользователь отправляет форму входа в PHP скрипт на сервере?
Данные перемещаются через Интернет с одного компьютера на другой. Ни больше ни меньше. То, что сервер делает с предоставленными данными, зависит от сервера.
Почему мы хэширования или шифровать пароль на стороне сервера ...
Чтобы не хранить пароль в виде простого текста, где каждый может увидеть его. Пароль - секрет, который должен знать только пользователь, и никто другой. Да, он должен путешествовать на сервер в простой форме, это более или менее неизбежно. Но тогда сервер должен делать все, что в его силах, чтобы не оставлять следов этой простой формы.
... может быть прочитан любым хакером.
Поэтому каждое представление данных должно быть защищено соединением SSL/TLS. Без этого, это действительно простой текст на проводе. Правильно настроенное соединение TLS в безопасной среде практически не поддается разрушению.
Возможный дубликат [Должен войти в систему на странице https] (http://stackoverflow.com/questions/4309199/must-logins-be-a-https-page) и [Защитить хэш и соль для паролей PHP] (http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords) –
«Читайте любым хакером» в основном преувеличение СМИ. Прослушивание чей-то незашифрованный интернет-трафик требует, чтобы взломщик подключался в какой-то момент к вашему соединению с сервером, что часто не является тривиальным. Подходы включают предоставление бесплатного (вредоносного) Wi-Fi, прослушивание всего трафика на открытом wifi (как легко), установка аппаратного устройства в чей-то офис (усложнение), подключение к сети общего пользования в придорожной коробке маршрутизации (еще труднее). – halfer
Пароли - это всего лишь один (популярный) коэффициент аутентификации. Но есть и другие. – Gumbo