3

Webアプリケーションの登録フォームに、パスワードフィールドがあります。今、私が送信ボタンでデータベースにデータを挿入しているとき。

アプローチ1:

md5関数を使用してハッシュ値を生成し、暗号化されたデータをデータベースに保存します。

アプローチ2:

MySqlのクエリを使用して、特定の列データをハッシュ値に直接変換します。

どちらのアプローチの方がオーバーヘッドが少なく、どちらのアプローチがネットワーク全体でより安全です。助けてください?

使用するデータベース:MySql 5、フロントエンド:Java

4

3 に答える 3

3

最初にデータを暗号化してからmysqlに挿入する方が安全です。そうしないと、アプリサーバーとデータベース間のトラフィックをリッスンすることでデータが「スニッフィング」される可能性があります。

MD5を使用する際に留意すべきもう1つのポイントは、「salt」値を使用することです。塩を使用しない場合、MD5はブルートフォース攻撃を受けやすくなります。ソルトを使用するということは、MD5を計算してデータベースに保存する前に、ユーザーが入力した値に任意の文字列を追加することを意味します。

たとえば、ユーザーが入力した値が「ABC」で、ソルト値が「12345」の場合、「ABC12345」のMD5を計算します。

于 2012-07-06T08:56:10.720 に答える
0

暗号化されたパスワードをDBに保存する必要があります。また、認証する場合は、2つの暗号化された文字列を比較する必要があります。これはオーバーヘッドの問題ではなく、セキュリティの問題です(これが、ハッシュではなく実際の暗号化を検討する必要がある理由でもあります)。

于 2012-07-06T08:48:02.520 に答える
0

最も確実にハッシュを計算し、アプリケーションレベルで暗号化する必要があります。これにより、リプレイやMiM攻撃から保護されます。パスワードをクリアテキストで暗号化する代わりに暗号化されたハッシュを保存すると、ユーザーのセキュリティがさらに強化されます。これは、DBがハッキングされた場合、攻撃者が他のサイトでこの情報を使用できないためです(ユーザーは同じ情報を使用する傾向があるため)パスワード)。

IMO、機密情報を扱うときは、パフォーマンスよりもセキュリティを優先する必要があります

于 2012-07-06T08:58:20.090 に答える