0

学習プロジェクトとして、PHP でログイン スクリプトをまとめようとしています。

これは、ユーザー登録時にデータベースに書き込むためのコードです。これらの値は両方ともデータベースに書き込まれます。

 $this->salt = md5(uniqid());
 $this->password = md5($password.$salt);

ログインすると、次の関数が起動されます。

function challengeLogin($submittedPassword, $publicSalt, $storedPassword){
    if(md5($submittedPassword.$publicSalt) == $actualPassword){
        return 0;
    }else{
        return 1;
    };
}

残念ながら、私のコードをステップ実行すると、2 つの値が等しくなることはありません。誰かが理由を理解するのを手伝ってくれますか?

4

2 に答える 2

5

あなたのコードの問題は、$salt変数が未定義であるため、空であることだと思います。使用する必要があります$this->salt

変化する

$this->password = md5($password.$salt);

$this->password = md5($password.$this->salt);
于 2010-06-13T01:46:35.820 に答える
1

いくつかの基本的な echo ステートメントを使用して、ハッシュされる前の生の値を比較します。ソルトが間違っているか、パスワードが間違っているか、ハッシュが何らかの形で台無しになっています。

于 2010-06-13T01:43:46.377 に答える