これは、いくつかの読みに基づいた簡単なアイデアです。
サーバーは(プレーンテキスト+ソルト)のハッシュバージョンを保存します。これにより、ハッシュを元に戻すのが難しい限り、パスワードが表示されなくなります。
クライアントがログインを試みると、サーバーはそれ(ソルト、ランダム)、つまり定数ソルトと新しく生成されたランダム文字列を送信します。
クライアントはハッシュ(ハッシュ(プレーンテキスト+ソルト)+ランダム)を送り返します。つまり、クライアントはソルトを追加し、ハッシュし、次にランダムを追加してから、再度ハッシュします。
サーバーは、ハッシュ値が自身のH(H(pwd + salt)+ rnd)と同じであることを確認します。
私はこれについてあまり経験がないので、潜在的な問題は何ですか?また、通常、塩で何をしますか?あなたは本当に同じ塩を使うことで逃げることができますか?