gpt4 book ai didi

PHP SHA256 和 Salt 不起作用

转载 作者:行者123 更新时间:2023-12-03 19:15:13 26 4
gpt4 key购买 nike

我正在尝试创建使用 $salt 变量进行 sha256 哈希处理的密码。但由于某种原因,它就是行不通。现在已经在这上面工作了 3 个小时,我快要崩溃了。这是我的代码:

我会再试一次,抱歉;o)

好的,我的脚本运行良好,直到我尝试将 sha256 添加到密码中。我有一个用于创建用户的文件:

$salt = "lollol";  
$password = hash('sha256', $salt.$_POST['password']);
$sql = ("INSERT INTO members (username, password, name, last_name,company)VALUES('$username', '$password', '$name', '$last_name', '$company')")or die(mysql_error());

if(mysql_query($sql))
echo "Your accuont has been created.";

它似乎已正确添加到数据库中。我可以看到它正在用一些字母和数字进行哈希处理。

但是当我尝试登录时,它就是不会。

我的 login.php 代码是:

$sql= "SELECT * FROM members WHERE username='$username' and password='$password'";  
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$salt = "lollol";
$auth_user = hash('sha256', $salt.$password);
if($password == $salt.$auth_user){
echo "Logged in";
} else {
echo "Not logged in";
}

我明白了,我想登录时必须加密密码,但我不确定。我希望你们中的一些人能帮助我。

最佳答案

尝试登录时,您再次将散列与盐连接起来

$auth_user = hash('sha256', $salt.$password);
if($password == $salt.$auth_user){ // <-- $salt once more
echo "Logged in";
} else {
echo "Not logged in";
}

如果你只是删除它,它应该可以工作

$auth_user = hash('sha256', $salt.$password);
if($password == $auth_user){
echo "Logged in";
} else {
echo "Not logged in";
}

更新:更进一步

这里

$sql= "SELECT * FROM members WHERE username='$username' and password='$password'";

您尝试检索用户名与 $username 匹配且密码与 $password 匹配的行。在数据库中,密码已经过哈希处理($password 似乎根本没有定义),因此该查询永远不会返回任何行。

$password = hash('sha256', $salt.$_POST['password']);
$username = mysql_real_escape_string($_POST['username']);
$sql= "SELECT * FROM members WHERE username='$username' and password='$password'";
$result=mysql_query($sql);

$result 现在应该包含唯一 匹配给定凭据的用户。现在很容易

if (mysql_num_rows($result) === 1) {
echo "Logged in";
} else {
echo "Not logged in";
}

关于PHP SHA256 和 Salt 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431918/

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