Когда браузер отправляет предоставленные вами данные, он отправляет их в формате, который наиболее вероятно соответствует требованиям RFC для протокола, с которым он связывается с сервером.
В случае HTTP-соединения имя пользователя и пароль отправляются в виде открытого текста (то есть в виде простого текста) на ваш веб-сервер.
В случае HTTPS-соединения все, что отправляется клиенту на сервер с поддержкой HTTPS (после рукопожатия), шифруется - по прибытии на сервер оно дешифруется.Какой бы программный стек вы ни использовали на стороне сервера, он должен прозрачно обрабатывать это для вас, поэтому вы снова будете иметь дело с данными в открытом виде.
В любом случае вам следует всегда хеш-пароличто вы храните.Причина не в том, чтобы хранить пароль, поскольку он проходит по проводам (то есть между клиентом и сервером).Причина заключается в том, чтобы сохранить пароль в вашей базе данных - самый безопасный способ сохранить секрет - это не иметь его для хранения.
Хеширование на стороне клиента вовсе не безопасно, так как раскрывает не тольковыбранный вами метод хеширования, но также и ваш механизм засоления (и для скомпрометированного клиента действительное значение соли).
Что касается наилучшего способа хеширования ... выберите прилично безопасный алгоритм хеширования (один изСемейство SHA должно хорошо справиться с задачей) и динамическая соль (отличающаяся для каждого пользователя, такая как дата присоединения и любая другая буква их адреса электронной почты).Если вы хотите сделать его более безопасным, хешируйте хеш несколько (тысяч) раз .Таким образом, даже если у вас будет украдена вся база данных, потребуется разоблачение даже небольшого процента ваших паролей, что избавит людей, которые повторно используют пароли, от некоторых серьезных головных болей.