从md5切换到password_hash

时间:2016-02-01 15:55:23

标签: php mysql

我一直在使用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。现在怎么样?

1 个答案:

答案 0 :(得分:1)

下次阅读手册;)存储密码时需要使用password_hash()(例如注册或更改密码时),当需要检查密码时(例如登录时),你就抓住了来自数据库的密码THEN使用用户密码和数据库中的哈希密码调用password_verify(),如下所示:

password_verify($cleartextUserPassword, $hashedPasswordFromDatabase);

如果password_verify()返回true,请将它们放入!