如何在登录时匹配php中的加密密码?

时间:2017-03-29 05:37:06

标签: php crypt

我正在使用PHP crypt()。在这里,我使用crypt()保存了密码。

在登录时,我希望将我的密码与输入密码和登录密码相匹配,但在crypt中,每次都使用相同的密码创建随机字符串。

下面是我的登录代码。

$user_name=$_REQUEST['username'];
$salt = "";
echo  $password=crypt($_REQUEST['password'], $salt);

$query ="select username , password from users where username = '".$user_name."'";
$result = mysqli_query($con , $query);
$row = mysqli_fetch_assoc($result);

echo "<pre>";print_r($row);exit;

登出输出

$1$oIllNdlE$y23rdM6qp4sv/P/bgfUE7/     //user input

Array
(
    [username] => sradha
    [password] => $1$dI1IgbiD$NsfWU0fOHOzNEFbd7Vrx.0  //from data base 
)

这里我的密码是123,对于同样的123,它产生了两个不同的结果。

登录时,下面是我插入数据库的代码:

user_name=$_REQUEST['username'];
$salt = "";
$password=crypt($_REQUEST['password'], $salt);
mysqli_query($con , "INSERT INTO users (username , password) VALUES ('sradha' , '".$password."')");

任何建议,如何使用crypt匹配密码?

1 个答案:

答案 0 :(得分:1)

Crypt函数每次都返回不同的数据。 您可以使用hash_equal函数来比较加密的字符串。