gpt4 book ai didi

php - 向哈希添加盐后无法使登录脚本工作;之前工作得很好

转载 作者:行者123 更新时间:2023-11-30 21:56:42 25 4
gpt4 key购买 nike

我已经重置了我的数据库,在注册时,我们在哈希中添加了随机盐,注册脚本运行良好,我们可以创建帐户和使用相同密码但它们具有不同哈希的帐户,但我们的登录脚本已损坏,没有登录用户,说他们的密码不正确。

不知道为什么 - 我们花了最后 2 个小时试图修复它。我们使用了 PHP 错误检查器(https://phpcodechecker.com/),没有任何错误。

我们正在运行旧版本的 PHP(5.6) 和 MySQL,目前无法更改。

    <?php
ob_start();
session_start();
require_once 'dbconnect.php';

// it will never let you open index(login) page if session is set
if ( isset($_SESSION['user'])!="" ) {
header("Location: index.php");
exit;
}

$error = false;

if( isset($_POST['btn-login']) ) {

// prevent sql injections/ clear user invalid inputs
$email = trim($_POST['email']);
$email = strip_tags($email);
$email = htmlspecialchars($email);

$name = trim($_POST['name']);
$name = strip_tags($name);
$name = htmlspecialchars($name);


$pass = trim($_POST['pass']);
$pass = strip_tags($pass);
$pass = htmlspecialchars($pass);
// prevent sql injections / clear user invalid inputs

if(empty($name)){
$error = true;
$nameError = "Please enter your username.";
}

if(empty($pass)){
$error = true;
$passError = "Please enter your password.";
}
$res=mysql_query("SELECT userId, userEmail, userPass, userSalt, userSalt2 FROM users WHERE userName='$name'");
$row=mysql_fetch_array($res);



$row['userSalt']=$salt1;
$row['userSalt2']=$salt2;
// if there's no error, continue to login
if (!$error) {

$passwordHash = hash('sha256', $salt1 . $password . $salt2); // password hashing using SHA256

//$res=mysql_query("SELECT userId, userEmail, userPass, userSalt, userSalt2 FROM users WHERE userName='$name'");
//$row=mysql_fetch_array($res);
$count = mysql_num_rows($res); // if email/pass correct it returns must be 1 row

if( $count == 1 && $row['userPass']==$passwordHash ) {
$_SESSION['user'] = $row['userId'];
header("Location: dashboard.php");
} else {
$errMSG = "Incorrect Credentials, Try again...";
}

}

}
?>
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(function(){
$("#overallhead").load("overall_header.php");
$("#overallfoot").load("overall_footer.html");
});
</script>
<style>
body {
color: Thistle;
}
</style>
<div id="overallhead"></div>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Creature Paradise</title>
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>

<div class="container">

<div id="login-form">
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" autocomplete="off">

<div class="col-md-12">

<div class="form-group">
<h2 class="">Login</h2>
</div>

<div class="form-group">
<hr />
</div>

<?php
if ( isset($errMSG) ) {

?>
<div class="form-group">
<div class="alert alert-danger">
<span class="glyphicon glyphicon-info-sign"></span> <?php echo $errMSG; ?>
</div>
</div>
<?php
}
?>

<div class="form-group">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span></span>
<input type="name" name="name" class="form-control" placeholder="Your Username" value="<?php echo $name; ?>" maxlength="40" />
</div>
<span class="text-danger"><?php echo $nameError; ?></span>
</div>

<div class="form-group">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span>
<input type="password" name="pass" class="form-control" placeholder="Your Password" maxlength="15" />
</div>
<span class="text-danger"><?php echo $passError; ?></span>
</div>

<div class="form-group">
<hr />
</div>

<div class="form-group">
<button type="submit" class="btn btn-block btn-primary" name="btn-login">Sign In</button>
</div>

<div class="form-group">
<hr />
</div>

<div class="form-group">
<a href="register.php">Don't have an account? Sign up here! </a>
</div>

</div>

</form>
</div>

</div>
<div id="overallfoot"></div>
</body>
</html>
<?php ob_end_flush(); ?>

最佳答案

你也对注册页面进行哈希处理了吗?因为 $row['userPass'] 永远不会等于 $passwordHash 如果你还没有注册一个应用了新哈希的新帐户

关于php - 向哈希添加盐后无法使登录脚本工作;之前工作得很好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44916236/

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