0

我得到了我的登录页面,在它上面我还使用它来验证用户名和密码。

我坚持根据数据库中提供的密码检查密码。这是因为我在注册时已完成此代码以提高安全性。

$hashed_password = crypt('pass1'); 

任何人都可以帮助我创建一个 if 语句来检查数据库加密密码到所提供用户的密码。对此,我真的非常感激。

在登录页面....这是我的密码帖子。

$password = htmlentities(trim($_POST['password']));
4

1 回答 1

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() 有两个参数,第二个是所谓的盐(见 wiki)。如果未提供,salt 将自动生成(因此可以认为是随机的)。整个算法中都使用了盐,因此要将您想要的crypt()用户提供的密码与您之前使用的相同盐进行比较,否则结果会有所不同。为了使这种可能的盐添加到 crypt 结果(在开始时),因此为了比较目的提供先前的结果只需crypt()使用旧盐(它是 2 或 12 个字符,具体取决于所使用的算法)。

于 2012-11-23T22:40:31.150 回答