免責事項:私はセキュリティ専門家ではありません。専門家の助言を得るには、Security.StackExachangeをチェックしてください。
this stackoverflow questionの回答は、あなたと本質的に同じですが、参考になるかもしれません。
私の意見では、サーバー側をハッシュして塩をかけるのが最善です。 TLSを使用していて、あなたのアプリが銀行なんかそんなものでないなら、あなたは大丈夫でしょう。 TLSは公開鍵暗号を使用してWebパケットを暗号化します。誰かがあなたの秘密鍵を把握できれば、あなたのパケットを解読してその内容を読むことができますが、秘密鍵を渡さない限り何百万年もかかることになります(thisをチェックして解読する)。
実際にセキュリティを強化する必要がある場合は、別のアルゴリズムを使用してクライアント上のパスワードを暗号化し、サーバー上で復号化することができます(プライベートキーをサーバーに保存する別のレベルの公開キー暗号化)。ほとんどの場合、これは必要ではありません。
クライアントのハッシングは、システムのセキュリティを向上させないことに注意してください。攻撃者がパケットを復号化してハッシュ化されたパスワードを取得できる場合は、平文でパスワードにアクセスした場合と同じようにデータベースにアクセスできます。
いずれの場合でも、ネットワーク上でユーザーのパスワード(ハッシュまたはハッシュ)を渡す必要がある回数を最小限にすることをお勧めします。ユーザーがアカウントを作成し、パスワードをハッシュして塩漬けしてデータベースに保存したら、その後のリクエストで使用できるAPIキー(おそらくJWTなど)を返すことを検討することもできます。
[security.SE](https://security.stackexchange.com/) – MilkeyMouse