繁体   English   中英

检查mysql中的SHA256哈希密码是否正确,登录表单无法正常工作

[英]Check if SHA256 hashed password in mysql is correct in login form not working

您好我的代码有一个小问题。 问题是在Minecraft服务器中要求用户注册,然后他的注册详细信息进入mysql数据库,密码在SHA256自定义哈希中加密。 这是它的算法:

    String salt = randomString(length:16);
String encryptedPassword = "$SHA$" + salt + "$" + sha256(sha256(password) + salt);

问题是我需要人们使用该密码及其用户名登录我的网站。 但为了检查它我需要编码我的密码并检查它们是否相同。 但我的代码似乎不起作用,我已经尝试了一切。 请帮我。 谢谢!!:

    <?php
    require_once 'config.php';
    $mysqli = new mysqli($hostname, $user, $pass, $db4);
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$name = 'name';
$password = 'password';
$v = $mysqli->query("SELECT password FROM authme WHERE username = '".$name."'"); 
                        if ($v->num_rows > 0) {
                            $row = $v->fetch_assoc(); 
                            echo $row['password']; 
                        } 
                        else { 
                            echo 'There is no user with such name';
                            exit();
                        }
function checkPassword($password,$row['password']){
     $parts = explode('$',$row['password']);
     $salt = $parts[2];
     $hashed = hash('sha256',hash('sha256', $password).$salt);
     $hashed = '$SHA$'.$salt.'$'.$hashed;
     if ($hashed == $row['password'])
     {
         return true;
     }
    else {
        return false;
    }
}
if (checkPassword($password, $row['password']) === true) {
    echo 'OMGGGGGGGGGGGGGGGGGGGG';
}
else {
    echo 'something went wrong';
}                       
$mysqli->close();
?>
function checkPassword($password, $db_password)
{
    $parts = explode('$', $db_password);
    $salt = $parts[2];
    $hashed = hash('sha256',hash('sha256', $password).$salt);
    $hashed = '$SHA$'.$salt.'$'.$hashed;
    return ($hashed == $db_password) ? true : false;
}

您将一个变量传递给函数,因此将$row['password']所有引用更改为函数的$db_password

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM