2017-01-29 9 views
1

パスワードを暗号化してサーバーに格納する方法を知りたい。 パスワード暗号化で乱数を使用すると、ログイン時にパスワードが真であるかどうかを認識します。パスワードの暗号化はどのように機能しますか?

+0

**パスワードを暗号化しないでください**、攻撃者がDBを取得したときにも暗号化キーを取得します。 – zaph

答えて

1

一般的なやり方は、パスワードを暗号化するのではなく、ハッシュすることです。したがって、実際にパスワードを保存するのではなく、パスワードのハッシュ値をユーザーがログインしたときにパスワードをハッシュし、ハッシュ値が格納された値と一致するかどうかを比較します。

セキュリティを強化するには、「塩をかける」ことをおすすめします。たとえば、パスワードを他のものとユーザ名とを組み合わせて一緒にハッシュします。

+0

ハッシュ関数を使用するだけでは不十分で、単に塩を追加するだけでセキュリティを向上させることはほとんどありません。代わりに、約100msの間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存します。 'PBKDF2'(別名' Rfc2898DeriveBytes')、 'password_hash' /' password_verify'、 'Bcrypt'などの関数を使用してください。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。ユーザーを保護することが重要です。安全なパスワード方法を使用してください。 – zaph

関連する問題