Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 哈希密码的sha1比较?_Php - Fatal编程技术网

Php 哈希密码的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

我该怎么比较sha1呢?我认为正确的是错误的。在这方面的任何帮助都将是甜蜜的,谢谢:)我不明白这为什么不起作用

<?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。