0

できるだけ安全な独自のログイン システムを構築したいと考えています。MD5 でパスワードを暗号化し、余分なデータを削除する

$password = strip_tags($password);
$password = mysql_real_escape_string($password);
$password = md5($password);

いくつかの例でトークンを見てきましたが、有用性を本当に理解していません。編集 - 私は修正されました。それはソルトであり、私が見たトークンではありません。

4

4 に答える 4

4

ソルトはセキュリティのレイヤーを追加します。md5 ハッシュはリバース MD5 データベースで検索できなくなります。

たとえば、誰かが md5($password) (パスワードは「somepassword」) のみを使用している Web サイトをハッキングした場合、レインボー テーブルを使用するリバース MD5 データベースでパスワードを検索すると、プレーン テキストとして表示されます。しかし、salt (salt は 'W*&sju') を使用すると、プレーン テキストは実際には 'W*&sjusomepassword' になり、オンライン データベースには見つかりません。

したがって、サーバーでは、パスワードをデータベースに入力する前にソルトでハッシュします。

md5($password . 'somesalT&^@*!');

次に、ログイン時にパスワードを確認します。

$hashed_password = md5($_POST['password'] . 'somesalt&^@*!');

推奨事項:

  • ソルトをハードコードすることで、誰かがデータベースにアクセスできたとしても、あなたのソルトを手に入れることはありません... ハッシュをさらに安全にします。
  • Salt は、少なくとも 3 文字の長さ、大文字、小文字、および特殊文字である必要があります。
  • パスワードは 7 文字以上にする必要があります。したがって、これにより、10 文字の長さ、大文字、小文字、および特殊文字のパスワード ハッシュが残ります。
于 2012-05-31T18:28:22.403 に答える
4

それはトークンとは呼ばれず、ソルトと呼ばれます。

パスワードをソルトしないと、パスワード ハッシュが重複する可能性があります。

私と他の誰かが同じパスワードを持っている場合 (StackOverflow としましょう)

  • 私 - StackOverflow-84d7dc19766c446f5e4084e8fce87f82
  • 他の誰か - StackOverflow-84d7dc19766c446f5e4084e8fce87f82

でも塩で、

  • 私 - StackOverflowMeSalt-9a0126445be2d0b0bc6ab9728aae1323
  • 他の誰か - StackOverflowSomeone elseSalt-66f6bd8d92f084dabd7e2dd588b2bfcb

また、パスワードがハッシュされている場合は、パスワードmysql_real_escape_stringを使用する必要はありません。strip_tagsこれにより、パスワードがより安全ではなくなります。

于 2012-05-31T18:17:19.863 に答える
2

ソルトを使用する理由は、レインボー テーブルが存在するためです。

たとえば、の MD5 ハッシュpassword123482c811da5d5b4bc6d497ffa98491e38.

上記のハッシュがデータベースで発見されたpassword123場合、存在する可能性のある既知のハッシュのテーブルと比較できます。したがって、一致が見つかれば、平文のパスワードがわかります。

ただし、次の操作を行うときに、 など、自分だけが知っているソルトを使用する場合mY_r4nD0m_Sa1t:

md5($password.$salt);

これにより、上記f5a299746a9dbc005e423259283bc56bの既知のハッシュとは完全に異なるハッシュが生成されpassword123ます。

ただし、すべての場合において、phpassを使用することをお勧めします。

于 2012-05-31T18:34:50.783 に答える
1

そう、「塩」です。
通常、PHP でパスワードを使用してログインの詳細を暗号化し、ランダムなソルトを生成します。その後、ソルトは暗号化されたログインの詳細とともにデータベースに保存され、復号化時に使用されます。基本的に、各ユーザーのパスワードをランダムにします。

于 2012-05-31T18:23:00.797 に答える