使用密码验证PHP用户名和密码
我正在尝试更新我的不安全登录系统。但是,无法理解如何合并if(password_verify..命令 任何帮助都将不胜感激使用密码验证PHP用户名和密码,php,mysql,passwords,Php,Mysql,Passwords,我正在尝试更新我的不安全登录系统。但是,无法理解如何合并if(password_verify..命令 任何帮助都将不胜感激 //Create query $qry="SELECT * FROM user WHERE username='$username' AND password='$password'"; $result=mysql_query($qry); if($result) { if(mysql_num_rows($result) > 0) { //IF Log
//Create query
$qry="SELECT * FROM user WHERE username='$username' AND password='$password'";
$result=mysql_query($qry);
if($result) {
if(mysql_num_rows($result) > 0) {
//IF Login Successful
session_regenerate_id();
$user = mysql_fetch_assoc($result);
$_SESSION['SESS_USER_ID'] = $user['user_id'];
$_SESSION['SESS_FIRST_NAME'] = $user['username'];
$_SESSION['SESS_LAST_NAME'] = $user['password'];
session_write_close();
header("location: home.php");
exit();
}else {
//IF Login failed
$errmsg_arr[] = 'user name and password not found';
$errflag = true;
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
exit();
}
}
以下是您问题的答案和一些一般信息: 密码验证功能: 一个好的做法是在存储敏感数据之前对其进行加密。由于您不希望恶意用户能够检索密码,因此将使用一个非对称的(单向)加密算法系列,我们称之为散列 您将使用输入的值重新生成哈希,并将其与存储在数据库中的值进行比较,从而检查用户是否为您提供了正确的凭据 在这种情况下,您不会在查询中插入任何用户输入 您可以通过添加一个 文档非常明确,您将在本文中发现有关哈希算法的讨论 帐户创建/密码更改步骤:
- 计算用户的密码哈希
- 将其存储在数据库中
- 检索到用户输入
- 调用password\u verify($user\u password\u inputed,$hash\u retrieve\u from\u db)函数
- 如果函数返回true,则对用户进行身份验证
现在,我们有这样的工具,可以通过使用来处理这些问题。你必须使用MYSQLi或PDO。你使用的是不推荐的函数。永远不要将变量直接传递给你的查询。密码是否在数据库中散列?正如@shashikant所说,使用不推荐的函数和丢弃未初始化的变量,你的系统永远不会安全如果你的密码不是散列的,它应该是。嗨,tektiv,是的,所以使用密码验证我想做一个比较位。谢谢shashikant,我正在寻找关于更新的建议,以便进行调查