パスワードを保存するにはどうすればよいですか?
質問
JSF で新しいサイトをプログラミングしています。現時点では、ログインをプログラムしています。
私は数年前に md5 を使用しましたが、Rainbow Tables ではもう安全だと思います。
では、パスワードをデータベースに保存するにはどうすればよいでしょうか?
他のヒント
まず最初に、ベンダーが提供する構築済みシステムを探します。セキュリティコードを書いて生計を立てている人には、このことをできる限り押し付けたいと思うでしょう。なぜなら、手遅れになるまで気づかない微妙な方法で間違いを犯すのは非常に簡単だからです。こうすることで、サービスの更新情報も入手できるようになり、それについて考える必要がなくなります。
さらに、パスワードに合わせてアカウントごとのソルトを生成し、安全なハッシュ アルゴリズムを使用することを忘れないでください (md5 は速度を目的としたものであり、必ずしもセキュリティを目的としたものではありません)。SHA1 は非常に一般的ですが、これも古くなり始めています。
sha512 でハッシュし、ソルティングすることをお勧めします。(全員のランダムな値を保存し、パスワードとその値を一緒にハッシュします。)
PKCS#5 を調べると (あるいは、すでにそれを実行している評判の良い実装を見つけると)、非常に優れたメカニズムが見つかるでしょう。
基本的には、数字 (たとえば 500)、パスワード、ハッシュ アルゴリズム、ソルト (推測されにくくするためにパスワードの末尾に追加されるランダムなデータ) を選択します。
- パスワードを取得し、ソルトを加えてハッシュします。
- 結果を見て、それを塩(同じ塩)にして、それを持っています。
- ステップ 2 を N 回繰り返します (この例では、N は 500)。
- 最終的にハッシュされ、ソルト処理された結果を、N およびソルト自体とともにパスワード データベースに保存します。
所属していません StackOverflow