Прежде всего, если вы используете SSL, то пароль не отправляется в виде обычного текста. Все, кроме первоначального рукопожатия, зашифровано, и при этом достаточно надежно. Учтите, что это безопасность, на которую ежедневно полагаются банки, военные, правительство во всем мире. Я не говорю, что вы должны доверять этому только потому, что все остальные это делают ( аргумент от авторитета ) - я просто говорю, что если с этим возникнут проблемы, мы сразу услышим об этом.
Во-вторых, вы никогда ничего не получите от хэширования на стороне клиента. Базовая атака, которую вы пытаетесь предотвратить, - это атака человек посередине (MITM) . Независимо от того, кто-то подслушивает соединение, вынюхивает пароль для атаки воспроизведения или активно перехватывает сессию (т. Е. Притворяется сервером и клиентом для противоположных концов соединения), вы не можете реально предотвратить его с помощью дополнительной безопасности.
Если вы предполагаете, что злоумышленник может взломать ваше SSL-шифрование, тогда любой другой токен, который полагается на то, что делает программное обеспечение клиента или что-то, что сервер отправляет, может быть скомпрометирован. Если это какая-то хеш-функция на стороне клиента, то злоумышленник может узнать, что это за функция, просмотрев веб-страницу, отправляемую сервером, или просто прослушать хешированное значение и использовать его для олицетворения клиента, когда злоумышленник связывается с сервером. Если существует какой-либо безопасный ключ или токен, который сервер отправляет клиенту для использования и ответа, злоумышленник может просто перехватить это.
Я думаю, что вы ищете двухфакторная аутентификация .