2013-05-02 53 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']); 
} 

注意:第二個參數是在隱窩功能鹽。

希望它有幫助:)