首页 文章

PHP使用MD5密码登录? [关闭]

提问于
浏览
0

我有一个用户的现有数据库,每个用户的密码都存储为MD5哈希 .

我试图用PHP创建一个登录表单(我也非常新)只是我似乎无法让它工作,我知道我的用户名和密码是正确的但我仍然收到错误的错误,我有转换我的在检查表中的用户名之前输入到MD5的密码?

我现在有......

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

如果我回显我的密码,它输出的文本不是哈希

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

3 回答

  • 1

    除了在比较数据库之前对密码进行哈希处理之外,您还应该在该密码哈希中添加"salt" . 这个"salt"只不过是你连接到密码的随机任意字符串,它会产生你的哈希密码"unique" . 我的意思是,如果有人知道什么是md5('12345')是一个字符串'A',这个盐将使你的用户能够非常容易地识别它们.2919899_12345' as the string ' B ' in your DB. Thus outsiders won' t . 因此,我建议您使用自定义函数myHashMD5()来调用密码,该函数调用md5()添加正确的"salt" . 除此之外,在mysql中你应该将字符串与运算符LIKE进行比较,而不是= . 此外,我使用函数http://php.net/manual/en/function.mysql-real-escape-string.php来避免SQL注入,并且您的代码容易受到攻击 .

  • 0

    您应该将密码的哈希值与数据库中存储的哈希值进行比较:

    $hashedPassword = md5($password);
    
  • 0

    只需将此行添加到 $mypassword=$_POST['mypassword']; 旁边的代码中

    $mypassword = md5($mypassword);
    

相关问题