Php 哈希密码的sha1比较?
我该怎么比较sha1呢?我认为正确的是错误的。在这方面的任何帮助都将是甜蜜的,谢谢:)我不明白这为什么不起作用Php 哈希密码的sha1比较?,php,Php,我该怎么比较sha1呢?我认为正确的是错误的。在这方面的任何帮助都将是甜蜜的,谢谢:)我不明白这为什么不起作用 <?php //processlogin.php session_start(); require('config.php'); $username = $_POST['username']; $password = $_POST['password']; $username = stripslashes($username); $password = stripsla
<?php
//processlogin.php
session_start();
require('config.php');
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$hashedpassword = sha1($password);
$sql = "select * from users where username = '$username' and password = '$hashedpassword' ";
$result = mysql_query($sql) or die ( mysql_error() );
$count = mysql_num_rows($result);
$row = mysql_fetch_row($result);
if ($count == 1) {
$_SESSION['loggedIn'] = "true";
$_SESSION['username'] = $row['username'];
$_SESSION['email'] = $row['email'];
header("Location: welcome.php");
} else {
$_SESSION['loggedIn'] = "false";
header("Location: error.php");
}
?>
将密码哈希保存在数据库中,然后将其与此进行比较。
或者,您加载您拥有的用户名的密码,并将其散列,然后将其与输入的密码进行比较
$行
在任何地方都没有定义。您需要抓取结果集并将其推到$row
边缘问题,密码哈希的SHA1变得相当弱(特别是如果不加盐)。没有像MD5那样坏,但仍然很弱。改为使用PBKDF2(如果不可用,则使用SHA2/SHA3)。另外,stripslashes
不足以清理输入数据,您很容易受到SQL注入的攻击。使用PDO或mysqli,而不是不推荐使用的mysql\u*
函数//在11:09am-1/26时添加:$row=mysql\u fetch\u row($result);。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。