С другой - сервер может поставить кто угодно и попытаться спиздить чистый пароль, а если этот кусок дебила под именем юзер еще и пин от карточки прописал, как пароль то эт пизда
С одной стороны клиент может попробовать это абузить и как-то наебать + хотелось бы добавить соли к хешам, чтоб если брутфорсят, то это было бы тяжелее
Хеш солится и хранится на сервере, там же и соль хранится, но открытый пароль не хранится. Клиент передаёт открытый пароль. Сервер его солит и хеширует, затем сравнивает с имеющимся хешем
Можно и так называемым chap sequence сделать, чтобы сгенерированная в рамках сессии последовательность использовалась клиентом как соль к паролю для обратимого симметричного алгоритма