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;
    };
}

不幸的是,在单步执行我的代码时,这两个值从未相等。有人可以帮我理解为什么吗?

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

将原始值与一些基本的回显语句进行散列之前进行比较。要么是盐错了,要么是你的密码错了,要么是散列被搞砸了。

于 2010-06-13T01:43:46.377 回答