如何在PHP中正确使用bcrypt进行密码哈希?
大家好。我是一名初级PHP开发者,目前正在开发用户注册和登录系统。我了解到以明文形式存储密码是非常糟糕的做法,应该使用哈希。我找到了关于bcrypt的信息,但不太清楚如何在PHP中正确使用它。
我尝试过使用password_hash()和password_verify(),但不确定自己是否做得正确。以下是我的代码示例:
<?php
// 注册
$password = $_POST['password'];
$hash = password_hash($password, PASSWORD_DEFAULT);
// 将$hash保存到数据库...
// 登录
$input_password = $_POST['password'];
$stored_hash = // 从数据库获取
if (password_verify($input_password, $stored_hash)) {
echo "成功!";
} else {
echo "密码错误";
}
?>
我有几个问题:
- 仅仅使用
PASSWORD_DEFAULT是否足够,还是需要显式指定