1

私はソルトを入力しているだけで、PHPのドキュメントでは、人々は常にランダム変数関数を使用しています。ソルトを生成する代わりに入力することの欠点は何ですか?

4

2 に答える 2

1

ソルトのポイントは、ハッシュにエントロピーを追加することです。 暗号化ハッシュは、入力のわずかな変更が結果のハッシュに大きな違いをもたらすように設計されているため、(アルゴリズムの欠陥を除けば) 元の入力が同じであるかどうかを、異なるソルトが付けられた 2 つの間の類似性をチェックすることから知ることは不可能になります。ハッシュ。

しかし、すべての人に同じ塩を使用すると、提供される利点の多くが失われます. 同じソルトでハッシュされた 2 つの同一のパスワードは、同じハッシュになります。

  • すべての人に同じソルトを使用すると、少なくとも、2 人のユーザーが同じパスワードを持っていることが誰かにわかる可能性があります。

  • さらに重要なことは、すべてのユーザーに対して同じハッシュを一度にチェックできるようになったため、パスワードのクラックに費やす時間が大幅に短縮されることです。

  • 最悪の場合、誰かがあなたが使用するソルトのルックアップ テーブルをすでに持っている可能性があり、すべてのユーザーのパスワードを解読するのは簡単です。

単純なソルト (ユーザーの ID など) を使用してクラッキングをより困難にするという目標を達成することは可能ですが、ランダムな文字列を使用するのはほんの少しの手間であり、クラッキングをさらに困難にします (ソルトは予測がほぼ不可能であるため)。前もって、そのソルトの事前計算されたルックアップ テーブルを持つ可能性ははるかに低くなります)。

于 2011-12-05T23:29:32.433 に答える
1
  • ユーザーに何かを入力させるのはなぜですか?

  • ランダムに生成されたバイトは、ユーザー入力 (通常は英数字の ASCII のみ) よりもはるかに多くのエントロピーを持ちます。

于 2011-12-05T23:05:32.097 に答える