我创建了一个简单的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;
}
}
?>
答案 0 :(得分:0)
在您的代码中,您说哈希的长度为60个字符(根据password_hash方法),因此在您的数据库中,您必须至少设置字段长度为60 varchar(60)
。
请注意,如果您的数据库字段长度小于60,则在插入时将截断您的密码。
请参阅password_hash文档。