0

这是我的代码,它可以工作,除了密码,我将如何解决这个问题?我知道我应该用 md5 做点什么,但我找不到使用我的代码的解决方案。我真的需要让这个正确和安全,请协助

                //get the posted values
    $username=htmlspecialchars($_POST['user_name'],ENT_QUOTES);
    $password=htmlspecialchars($_POST['password'],ENT_QUOTES);

    $check_for_username = $mysqli->query("SELECT username FROM q4jli_users WHERE username='$username' AND password=MD5('$password')"); 
    if (mysqli_num_rows($check_for_username)) {     
        echo "yes";  

    } else {
        echo "no";                                                                           
    }

提前致谢

4

2 回答 2

0

首先,您需要确保用户的密码使用 MD5 加密到数据库中。如果没有,那么您可以使用以下代码:

$mysqli->query("INSERT INTO q4jli_users (username, password) VALUES ('$username', MD5('$password'))");

然后,当查看用户输入的密码是否正确时,需要将其加密为 MD5,然后在数据库中运行查询:

$check_for_username = $mysqli->query("SELECT username FROM q4jli_users WHERE username='$username' AND password=MD5('$password')");
于 2012-04-11T17:58:09.773 回答
0

MD5 已过时,不再是一种足够的密码加密方法。您应该使用更现代的加密算法来研究加盐哈希。

深思熟虑: bcrypt

于 2012-04-11T18:02:44.783 回答