比较密码md5 php / mysql

时间:2011-11-10 17:19:57

标签: php mysql

我正在尝试比较存储在数据库中的密码值(由md5($mypassword)完成),但是每次输入的密码都不同于DB中的密码时,它仍允许我进行身份验证用户......我试过了:

$rslt['password'] = md5($mypassword)
$rslt['password'] == md5($mypassword)
$rslt['password'] === md5($mypassword)

但它们似乎都不起作用。


代码片段如下:

if((mysql_num_rows($qry)==1)&&($rslt['username']==$myusername)&&($rslt['password'] == md5($mypassword)))
    {
    echo $rslt['username'];
    echo $myusername;
    echo $rslt['password'];
    echo md5($mypassword);
    //$expire=time()+60*60*24*30;
    //$_SESSION['user'] = $rslt['username'];
    //header("location: ../acct_beta.php");
    }

任何想法都会有所帮助。谢谢:D

3 个答案:

答案 0 :(得分:2)

可能是因为$mypassword和/或$myusername未从用户的输入中获取。确保您没有对这些变量进行硬编码,然后重试

答案 1 :(得分:1)

您可以稍微改变逻辑,让mysql使用

进行比较
select count(*) from <table> where username = @username and password = MD5(@password)

如果计数&gt; 0然后它被验证。

答案 2 :(得分:0)

我没有逃避查询字符串......