Сценарий безопасного входа в PHP - хэш md5 не соответствует хэшу, который я записал в базу данных в предыдущем скрипте? - PullRequest
0 голосов
/ 13 июня 2010

Я пытаюсь собрать сценарий входа в 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 ]

5 голосов
/ 13 июня 2010

Мне кажется, проблема в вашем коде в том, что переменная $salt не определена, поэтому она пустая. Вы должны использовать $this->salt

Изменить

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

до

$this->password = md5($password.$this->salt);
1 голос
/ 13 июня 2010

Сравните необработанные значения, прежде чем они будут хэшированы, с некоторыми базовыми эхо-операторами.Либо соль неверна, ваш пароль неверен, либо хэш каким-то образом облажался.

...