4

パスワードをデータベースに保存する方法の 1 つは、次の方法によるものだと読みました。ユーザー名、ハッシュ、ソルトの列を持つデータベーステーブルを作成します。塩は決して表示されません。

パスワード + ソルトでハッシュを生成します。パスワードはユーザーによって送信され、データベースには保存されません。生成されたハッシュがデータベースに格納されているものと同じであれば、パスワードは正しいです。

しかし、私には疑問があります。パスワードを送信すると、有線で送信中に盗聴される可能性があるため、通信も暗号化する必要があると思います。では、ハッシュとソルトを使用するのは、管理者からデータを保護するためだけですか? つまり、パスワードをデータベースに保存すると、管理者はすべての情報に簡単にアクセスできます。ハッシュを保存すると、管理者はユーザーの情報にアクセスできません。なぜなら、管理者は情報の半分を持っておらず、ソルトだけでパスワードを持っていないからです。ただし、ユーザーはパスワードを送信する必要がありますが、これは誰かに盗聴される可能性があるため、パスワードが公開されます。

ユーザーの情報を保護する最善の方法は?

ありがとう。

4

2 に答える 2

7

ハッシュ化されたパスワードは、部外者からデータを保護します. 誰かが SQL インジェクションを使用してデータにアクセスした場合、パスではなくハッシュのみを取得することを想像してみてください。ネットワーク上の安全な通信に HTTPS を使用し、ハッシュ化されたパスワードの既存のテーブルを使用して優れたセキュリティ モデルを実現できます。安全なソルト付きパスワード ハッシュ

于 2013-04-01T11:06:25.630 に答える