В дополнение к ответу martinstoeckli:
Правило № 2: шифрование всегда будет вторым выбором.Если вы можете использовать хеширование, сделайте это.
HTTPS - это асинхронная криптография (закрытые + открытые ключи).Принцип заключается в том, что все, что зашифровано с использованием открытого ключа, может быть дешифровано только с помощью закрытого ключа, связанного с ним.
В нашем случае клиент будет использовать открытый ключ для шифрования данных.И сервер будет единственным, кто сможет расшифровать данные с помощью закрытого ключа.
Таким образом, вы получите открытый текст данных после того, как закрытый ключ выполнит свою работу.
На данный момент лучше всего (на мой взгляд) хешировать ( + соль + в конечном итоге перец ) и сохранять хэш в базе данных.
Когда пользователь, например, попытается войти в систему, используя свой пароль, сервер снова хэширует полученный открытый текст (очевидно, используя ту же соль / перец) и сравнивает его с паролем в базе данных.
если хеш точно такой же, как в базе данных, это означает, что пароль, введенный пользователем, правильный.