0

ログインページを取得しました。そのページで、ユーザー名とパスワードの両方を認証するためにも使用しています。

データベースで提供されているパスワードと照合してパスワードをチェックすることに固執しました。これは、セキュリティを強化するために、登録でこのコードを実行したためです。

$hashed_password = crypt('pass1'); 

データベースの暗号化されたパスワードを提供されたユーザーのパスワードと照合するためのifステートメントの作成を誰かが手伝ってくれるでしょうか。ほんとうにありがとう。

ログインページで....これは私のパスワード投稿です。

$password = htmlentities(trim($_POST['password']));
4

1 に答える 1

1
// let the salt be automatically generated
$hashed_password = crypt('mypassword'); 

// You should pass the entire results of crypt() as the salt for comparing
if (crypt($user_input, $hashed_password) == $hashed_password) {
   echo "Password verified!";
}

編集

crypt()は2つのパラメーターを取り、2番目はいわゆるsaltです(wikiを参照)。指定しない場合、ソルトは自動生成されます(したがって、ランダムと見なすことができます)。ソルトはアルゴリズム全体で使用されるため、crypt()ユーザーが提供したパスワードを以前と同じソルトと比較する場合は、結果が異なります。これを可能にするために、(最初に)暗号化結果にソルトが追加されるため、比較のために以前の結果を提供するだけcrypt()で、古いソルトをフィードするだけです(使用するアルゴリズムに応じて2または12文字)。

于 2012-11-23T22:40:31.150 に答える