我得到了我的登录页面,在它上面我还使用它来验证用户名和密码。
我坚持根据数据库中提供的密码检查密码。这是因为我在注册时已完成此代码以提高安全性。
$hashed_password = crypt('pass1');
任何人都可以帮助我创建一个 if 语句来检查数据库加密密码到所提供用户的密码。对此,我真的非常感激。
在登录页面....这是我的密码帖子。
$password = htmlentities(trim($_POST['password']));
// let the salt be automatically generated
$hashed_password = crypt('mypassword');
// You should pass the entire results of crypt() as the salt for comparing
if (crypt($user_input, $hashed_password) == $hashed_password) {
echo "Password verified!";
}
编辑
crypt() 有两个参数,第二个是所谓的盐(见 wiki)。如果未提供,salt 将自动生成(因此可以认为是随机的)。整个算法中都使用了盐,因此要将您想要的crypt()
用户提供的密码与您之前使用的相同盐进行比较,否则结果会有所不同。为了使这种可能的盐添加到 crypt 结果(在开始时),因此为了比较目的提供先前的结果只需crypt()
使用旧盐(它是 2 或 12 个字符,具体取决于所使用的算法)。