ログインに HTTPS がない場合、クライアント側のハッシュは便利ですが、ハッシュやソルトの方法が明らかになるなど、いくつかの欠点がある可能性があります。そうは言っても、彼らがあなたのパスワード ハッシュ データベースにアクセスできる場合、彼らはおそらく既にその情報にアクセスしています。
サーバー側のソルトのみを行うには、ソルトとパスワード ハッシュを使用してパスワードを再ハッシュする必要があります。このシナリオでは、ユーザー名、ソルト (ユーザー名とパスワードのハッシュ ソルトを使用しない場合)、および 2 番目のハッシュのみを保存します。
あなたの例のように、クライアントとサーバーの両方でソルトを実行したい場合は、ユーザー名と初期パスワード ハッシュを組み合わせてソルトすることをお勧めします。誰でもあなたのソルト方法をチェックし、それをパスワード クラッカーに適用することさえできるので、ソルトがクライアントに知られることはありませんが、レインボー テーブルを使用して同じパスワード ユーザーをクラックすることは避けられます。
ユーザー名を単独でソルトとして使用しないでください。一般的なユーザー名 (例: admin) の場合、このソルトを含むテーブルが既に存在する可能性があります。
nyde1319 の回答を使用する際の問題 (申し訳ありませんが、回答にコメントする権利がありませんでした) は、パスワード + ソルト ハッシュを実行するために、データベースに暗号化されていないバージョンのパスワードが必要になることです。ハッシュの目的を無効にする。ハッシュ化されたバージョンのパスワードを使用して行われた場合、最初のハッシュを保存する必要があり、ソルトの目的を無効にしてそのハッシュをクラックできます。