gpt4 book ai didi

php - 无法在php中使用真实密码登录

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:36 26 4
gpt4 key购买 nike

我有一个注册表格和一个登录表格。我在我的注册表中使用了 md5 加密,并且工作正常。但是当我尝试使用像 (123) 这样的真实密码登录时,它并没有让我登录。另一方面,当我在密码字段中复制粘贴 md5 加密时,它正在让我登录。请帮我解决这个问题!谢谢!

这是我的代码:

<?php
if (isset($_POST['submit'])) {

$user_name = $_POST['username'];
$user_email = $_POST['email'];
$user_pass = $_POST['password'];

$query = "SELECT * FROM users where Email = '" . $_POST["email"] . "'";
$result = $obj->run_query($query);

if ($count = mysqli_num_rows($result) == 0) {

$query = "INSERT INTO users (Name,Email,Pass) VALUES ('$user_name','$user_email', md5('$user_pass'))";
$result = $obj->run_query($query);

echo "<script>alert('You have successfully Registered!')</script>";
echo "<script>window.open('welcome.php','_self')</script>";

} else {

echo "<script>alert('This user email $user_email is already exist!')</script>";
}
}

// login script
if (isset($_POST['login'])) {

$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['pass'];

$query = "SELECT * FROM users WHERE Email = '$email' AND Pass = '$password'";
$result = $obj->run_query($query);

if ($count = mysqli_num_rows($result) > 0) {

$_SESSION['email'] = $email;
$_SESSION['name'] = $name;

echo "<script>window.open('welcome.php','_self')</script>";



}
else
{
echo "<script>alert('Your email or password is incorrect!')</script>";
}
}

?>

最佳答案

如前所述:您正在将 POST 数组 $password = $_POST['pass']; 中的纯文本与表中的 MD5 进行比较。

应该读作 $password = md5($_POST['pass']);

我还声明过你不应该接受这个,“永远”。如果它是一个实时站点,我建议您将其搁置,直到您使用“本世纪”的安全哈希函数。

MD5 已有 30 多年的历史,现在不再被认为可以安全地使用它来散列/存储密码。

请参阅以下内容:

密码

使用以下之一:

其他链接:

关于列长度的重要旁注:

如果您决定使用 password_hash() 或 crypt,请务必注意,如果您当前的密码列的长度低于 60,则需要将其更改为(或更高)。手册建议长度为 255。

您需要更改列的长度并使用新的散列重新开始才能生效。否则,MySQL 将无提示地失败。


您现在的密码也对SQL injection开放.使用 mysqli with prepared statements , 或 PDO with prepared statements .

关于php - 无法在php中使用真实密码登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35706844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com