加密表单数据MD5

Encrypt Form Data MD5

我有以下表格:

       <form method="post" enctype="application/x-www-form-urlencoded" action="logincheck.php" autocomplete="off" >
       <table>
       <tr>
       <td><label for="username">Username</label></td>
       <td><input type="text" name="username"></input></td>
       </tr>
       <tr>
       <td><label for="password">Password</label></td>
       <td><input name="password" type="password"></input></td>
       </tr>
       <tr>
       <td><input type="submit" value="Submit"</input></td>
       </tr>
       </table>
       </form>

并且 loginsuccess.php 有以下检查(还有更多 PHP 代码,但这是相关部分):

$username = mysqli_real_escape_string($connect, $_POST['username']);
$password = mysqli_real_escape_string($connect, $_POST['password']); 

$encrypted_mypassword=md5($password);

$query = "SELECT * FROM students WHERE username = '".$username."' AND password = '".$encrypted_mypassword."'"; 
$result = $connect->query($query);

用户应该被带到另一个页面(没有新的:

$encrypted_mypassword=md5($password);

但是它们被发送到错误页面并且无法正常工作。有什么想法吗?

问题似乎是您将密码存储在数据库中的 纯文本 中。您需要存储密码的 散列

请记住,如今 MD5 不是用于密码散列的合适算法,尤其是如果它还未加盐时。它太快了,可以相对容易地进行暴力搜索。请改用 password_hash()