PHP安全登录脚本 - md5哈希与我在以前的脚本中写入数据库的哈希不匹配?

时间:2010-06-13 01:40:25

标签: php md5 salt login-script

我正在尝试将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 个答案:

答案 0 :(得分:5)

我认为代码中的问题是$salt变量未定义,因此它是空的。您应该使用$this->salt

更改

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

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

答案 1 :(得分:1)

比较散列之前的原始值与一些基本的echo语句。盐是错误的,你的密码是错误的,或者哈希以某种方式搞砸了。