我正在尝试将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;
};
}
不幸的是,在单步执行代码时,这两个值从未达到过。有人能帮助我理解为什么吗?
答案 0 :(得分:5)
我认为代码中的问题是$salt
变量未定义,因此它是空的。您应该使用$this->salt
更改
$this->password = md5($password.$salt);
到
$this->password = md5($password.$this->salt);
答案 1 :(得分:1)
比较散列之前的原始值与一些基本的echo语句。盐是错误的,你的密码是错误的,或者哈希以某种方式搞砸了。