2013-05-02 31 views
0

我试图加密给定的密码以匹配数据库中的密码。然而使用crypt()每次都会给我一个不同的结果,所以它永远不会匹配。我如何做这项工作。在php中执行crypt()

这是散列用户给出的密码的语句。

if (empty($_POST) === false) { 
     $username = $_POST['username']; 
     $password = crypt($_POST['password']); 

在此之前,我手动做出有crypt('password')但如果我输入“密码”进入该领域没有关系不匹配的用户。

回答

4

尝试以下:

if (isset($_POST['username']) && isset($_POST['password'])) { 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    // get the hashed password from database 
    $hashed_password = get_from_db($username); 

    if (crypt($password, $hashed_password) == $hashed_password) { 
    echo "Password verified!"; 
    } 
} 
2

尝试这样,

//$pass_entered_from_login is the user entered password 
//$crypted_pass is the encrypted password from the 
//database or file 
if(crypt($pass_entered_from_login,$crypted_pass)) == $crypted_pass) 
{ 
    echo("Welcome to my web site.") 
} 

Read more

-2

隐窝自动生成盐每次使用它的时候.......... .. 所以使用相同的盐为用户 做这个时注册用户到您的数据库,同时检查tooo。

if (empty($_POST) === false) { 
    $username = $_POST['username']; 
    $password = crypt($_POST['password'],$_POST['username']); 
} 

注意:第二个参数是在隐窝功能盐。

希望它有帮助:)