パスワードをデータベースに保存する方法としてソルトハッシュを使用することをお勧めします。ただし、これはインタラクティブな目的でのみ機能します。例えば、
- ユーザーは登録フォームを使用してパスワードを入力し、ソルト付きハッシュ エントリとしてデータベースに保存します。
- 次にパスワードを使用してログインすると、パスワードのハッシュ値がデータベース エントリと比較されます。
ここまでは順調ですね。このログイン自体を自動化したい場合はどうすればよいですか? つまり、ユーザーがオンライン フォームにパスワードを入力してログイン パスワードを送信する代わりに、ローカル マシンのどこかにパスワードを保存して、ログイン フォームで自動認証に使用できるようにしたいと考えています。問題は、一方向であるため、ここではソルトハッシュを使用できないため、暗号化を行う必要があることです。暗号化を選択した場合は、復号化に安全なキーを使用する必要があり、これもどこかに保存する必要があります。暗号化する必要がある場合、安全に行うにはどうすればよいですか? そうでない場合、最善の方法は何ですか。この種のベストプラクティスはありますか?
クラックされて失敗した実装をいくつか見てきました。たとえば、SQL 開発者https://stackoverflow.com/a/3109774/350136