PHP Hashed Pwd未插入数据库

时间:2016-12-22 12:34:28

标签: php hash

我创建了一个简单的php脚本,可以从我的I-Phone应用程序中获取用户名和密码的价值。我确信它会抓取正确的用户名和密码,因为它会将正确的用户名和密码插入数据库。但是,当我在插入数据库之前尝试哈希密码时,它无法正常工作。

脚本如下。 $ query语句没有通过,我不明白为什么。 谢谢!

<?php
    @session_start();
    @ob_start();

    $host='localhost';
    $user='root';
    $pass='root';
    $db_name="deep_freeze"; 

    $connection = mysqli_connect($host,$user,$pass, $db_name);

    $username_p = $_POST['username'];
    $password_p = $_POST['password'];
    // Hash the password.  $hashedPassword will be a 60-character string.
    $hashPwd = mysql_real_escape_string(password_hash('hello', PASSWORD_DEFAULT));

    if(!$connection){
        die('Connection Failed');
    }
    else{
        $dbconnect = @mysqli_select_db($connection, $db_name);

        if(!$dbconnect){
            die('Could not connect to Database');
        }
        else{
            //echo $hashPwd;
            $query = "INSERT INTO deep_freeze VALUES ('$username_p','$hashPwd')";
            mysqli_query($connection, $query) or die(mysql_error());

            echo 'Successfully added.';
            echo $query;
            echo $username_p.$password_p;
        }
    }    
?> 

1 个答案:

答案 0 :(得分:0)

在您的代码中,您说哈希的长度为60个字符(根据password_hash方法),因此在您的数据库中,您必须至少设置字段长度为60 varchar(60)

请注意,如果您的数据库字段长度小于60,则在插入时将截断您的密码。

请参阅password_hash文档。