比较 MYSQL 密码与 HTML 表单密码
Comparing MYSQL password vs HTML form password
我有一个包含用户 ID 和密码的登录表单。
我猜问题出在 mysql database.so 中的 md5 密码 How to compare HTML form password with mysql password.??
这是登录表单的代码
<body>
<form method="post" action="validate_login.php" >
<table border="1" >
<tr>
<td><label for="LoginID">LoginID</label></td>
<td><input type="text"
name="LoginID" id="LoginID"></td>
</tr>
<tr>
<td><label for="password">password</label></td>
<td><input name="password"
type="password" id="password"></input></td>
</tr>
<tr>
<td><input type="submit" value="Submit"/>
<td><input type="reset" value="Reset"/>
</tr>
</table>
</form>
</body>
和 php 代码:
<?php
// Grab User submitted information
$LoginID = $_POST["LoginID"];
$password = $_POST["password"];
//$UserID= $_POST["UserID"];
// Connect to the database
$username = "avaninfo_dairy";
$password = "CMANcustomersupportsystem1234#";
$hostname = "localhost";
//connection to the database
$con = mysqli_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
// Select the database to use
mysql_select_db("avaninfo_dairy",$con);
$result = mysqli_query("SELECT * FROM cman_users WHERE LoginID = $LoginID");
$row = mysqli_fetch_array($result);
if($row["LoginID"]==$LoginID && $row["Password"]== $password)
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
?>
执行此操作的方法是使用与用户密码相同的 salt 进行 md5 编码,并根据存储在数据库中的 md5 哈希值对其进行检查。 http://php.net/md5
使用md5
函数
$row = mysqli_fetch_array($result);
if($row["LoginID"]==$LoginID && $row["Password"]== md5($password))
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
使用 MD5 内置函数:
if($row["LoginID"]==$LoginID && $row["Password"]== MD5($password))
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
(假设您要将未散列的密码与 md5 散列的密码进行比较。)
将 $row["Password"] == $password
更改为 $row["Password"] == md5($password)
。
$row = mysqli_fetch_array($result);
if($row["LoginID"]==$LoginID && $row["Password"]== md5($password))
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
关于 md5 的更多信息:http://php.net/manual/en/function.md5.php
P.S。 - 如果它在您的控制范围内,我建议您使用 password_hash()
和 password_verify()
来散列您的密码。
它比 md5()
.
安全得多
您可以使用md5 function。此外,您不需要检查 LoginID,因为 SQL Select 预过滤器。
if($row["Password"]== md5($password))
但是整个安全系统是错误的。 Web 浏览器应发送用户名和 md5(密码)。永远不要通过互联网发送密码。
此外,MD5 散列已被证明是可破解的。至少使用 SHA-1 哈希。
并且大多数系统对哈希进行加盐处理,以便不同用户的相同密码在数据库中具有不同的哈希值。
答案很简单。首先要清楚一些,您需要了解发生了什么。
存储在数据库中的 MD5 哈希算法
"md5 password in the mysql database"
是一种方式。这意味着一旦加密,您就不能 "undo" 它。您可以做的是将散列值与它进行比较,看它是否匹配。
How to compare HTML form password with mysql password.??
这会将 html 表单密码与 mysql 密码进行比较,
$hashed_value_from_mysql
是您来自 mysql 的加密密码,并且
$_POST[password]
是您提交表单时的密码
您的 name="password"
之后可以通过 $_POST
访问
您提交表格取决于您使用的方法。
if ($hashed_value_from_mysql === md5('$_POST[password]')) {
//if the password matched do whatever here
} else {
//it doesn't match, throw an error
echo "password doesn't match";
}
<?php
// Grab User submitted information
$LoginID = $_POST["LoginID"];
$password = md5($_POST["password"]);
//$UserID= $_POST["UserID"];
// Connect to the database
$username = "avaninfo_dairy";
$password = "CMANcustomersupportsystem1234#";
$hostname = "localhost";
//connection to the database
$con = mysqli_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
// Select the database to use
mysql_select_db("avaninfo_dairy",$con);
$result = mysqli_query("SELECT * FROM cman_users WHERE LoginID = $LoginID" and Password=$password);
$row = mysqli_num_row($result);
if($row>0)
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
?>
试试这个,它会很好用
我有一个包含用户 ID 和密码的登录表单。 我猜问题出在 mysql database.so 中的 md5 密码 How to compare HTML form password with mysql password.??
这是登录表单的代码
<body>
<form method="post" action="validate_login.php" >
<table border="1" >
<tr>
<td><label for="LoginID">LoginID</label></td>
<td><input type="text"
name="LoginID" id="LoginID"></td>
</tr>
<tr>
<td><label for="password">password</label></td>
<td><input name="password"
type="password" id="password"></input></td>
</tr>
<tr>
<td><input type="submit" value="Submit"/>
<td><input type="reset" value="Reset"/>
</tr>
</table>
</form>
</body>
和 php 代码:
<?php
// Grab User submitted information
$LoginID = $_POST["LoginID"];
$password = $_POST["password"];
//$UserID= $_POST["UserID"];
// Connect to the database
$username = "avaninfo_dairy";
$password = "CMANcustomersupportsystem1234#";
$hostname = "localhost";
//connection to the database
$con = mysqli_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
// Select the database to use
mysql_select_db("avaninfo_dairy",$con);
$result = mysqli_query("SELECT * FROM cman_users WHERE LoginID = $LoginID");
$row = mysqli_fetch_array($result);
if($row["LoginID"]==$LoginID && $row["Password"]== $password)
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
?>
执行此操作的方法是使用与用户密码相同的 salt 进行 md5 编码,并根据存储在数据库中的 md5 哈希值对其进行检查。 http://php.net/md5
使用md5
函数
$row = mysqli_fetch_array($result);
if($row["LoginID"]==$LoginID && $row["Password"]== md5($password))
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
使用 MD5 内置函数:
if($row["LoginID"]==$LoginID && $row["Password"]== MD5($password))
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
(假设您要将未散列的密码与 md5 散列的密码进行比较。)
将 $row["Password"] == $password
更改为 $row["Password"] == md5($password)
。
$row = mysqli_fetch_array($result);
if($row["LoginID"]==$LoginID && $row["Password"]== md5($password))
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
关于 md5 的更多信息:http://php.net/manual/en/function.md5.php
P.S。 - 如果它在您的控制范围内,我建议您使用 password_hash()
和 password_verify()
来散列您的密码。
它比 md5()
.
您可以使用md5 function。此外,您不需要检查 LoginID,因为 SQL Select 预过滤器。
if($row["Password"]== md5($password))
但是整个安全系统是错误的。 Web 浏览器应发送用户名和 md5(密码)。永远不要通过互联网发送密码。
此外,MD5 散列已被证明是可破解的。至少使用 SHA-1 哈希。
并且大多数系统对哈希进行加盐处理,以便不同用户的相同密码在数据库中具有不同的哈希值。
答案很简单。首先要清楚一些,您需要了解发生了什么。
存储在数据库中的 MD5 哈希算法
"md5 password in the mysql database"
是一种方式。这意味着一旦加密,您就不能 "undo" 它。您可以做的是将散列值与它进行比较,看它是否匹配。
How to compare HTML form password with mysql password.??
这会将 html 表单密码与 mysql 密码进行比较,
$hashed_value_from_mysql
是您来自 mysql 的加密密码,并且
$_POST[password]
是您提交表单时的密码
您的 name="password"
之后可以通过 $_POST
访问
您提交表格取决于您使用的方法。
if ($hashed_value_from_mysql === md5('$_POST[password]')) {
//if the password matched do whatever here
} else {
//it doesn't match, throw an error
echo "password doesn't match";
}
<?php
// Grab User submitted information
$LoginID = $_POST["LoginID"];
$password = md5($_POST["password"]);
//$UserID= $_POST["UserID"];
// Connect to the database
$username = "avaninfo_dairy";
$password = "CMANcustomersupportsystem1234#";
$hostname = "localhost";
//connection to the database
$con = mysqli_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
// Select the database to use
mysql_select_db("avaninfo_dairy",$con);
$result = mysqli_query("SELECT * FROM cman_users WHERE LoginID = $LoginID" and Password=$password);
$row = mysqli_num_row($result);
if($row>0)
echo"You are a validated user.";
else
echo"Sorry, your credentials are not valid, Please try again.";
?>