我收到了登录页面,并且我也使用它来验证用户名和密码。
我坚持检查数据库中提供的密码。这是因为我在注册时已完成此代码以提高安全性。
$hashed_password = crypt('pass1');
是否有人能够帮助我创建一个if语句来检查数据库加密密码到提供的用户密码。我真的很感激。
登录页面中的....这是我的密码帖子。
$password = htmlentities(trim($_POST['password']));
答案 0 :(得分:1)
// 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()有两个参数,第二个是盐(see wiki)。如果没有提供,盐将自动生成(因此可以认为是随机的)。盐在整个算法中使用,因此要比较您想要crypt()
用户提供的密码和您之前使用的相同盐,否则结果会有所不同。为了使这个可能的盐被添加到地穴结果(在开始时),因此为了比较目的提供先前的结果只需用旧盐({1}}提供旧盐(根据所使用的alghoritm,它是2或12个字符)。