我一直在使用md5作为密码。例如$password=md5($_POST['password']);;
我听说md5只是部分安全。现在我想使用password_hash
函数$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
这是我的代码:
if($submit)
{
$first=$_POST['first'];
$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$db = new mysqli("localhost", "root","","learndb");
$sql = "select * from admin where username = '" . $first . "' and password = '". $password . "'";
$result = $db->query($sql);
$result=mysqli_num_rows($result);
if($result>0)
{
session_start();
$_SESSION['logged_in'] = true;
session_regenerate_id(true);
header("Location:loginhome.php");
}
}
现在我应该如何将我的密码存储在数据库中。以前在使用md5时,函数字段中有一个md5。现在怎么样?
答案 0 :(得分:1)
下次阅读手册;)存储密码时需要使用password_hash()
(例如注册或更改密码时),当需要检查密码时(例如登录时),你就抓住了来自数据库的密码THEN使用用户密码和数据库中的哈希密码调用password_verify()
,如下所示:
password_verify($cleartextUserPassword, $hashedPasswordFromDatabase);
如果password_verify()
返回true,请将它们放入!