2012-06-24 32 views
0

比較如何比較存儲在數據庫中,用戶輸入的密碼散列密碼,我需要做thsi,這樣用戶可以登錄。哈希密碼數據庫中的用戶輸入在PHP的mysqli

以下是我散列我的密碼(使用PHPS隱窩法)

$hashedpass = crypt($password); 
      $sql = "INSERT INTO accounts (username,password,email) VALUES('{$username}','{$hashedpass}','{$email}')"; 
      $conn->query($sql); 

這是我比較它們的用戶輸入

$username = trim($_POST['username']); 
     $password = crypt($_POST['password']); 
     $sql = "SELECT * FROM accounts WHERE username = '{$username}' && password = '{$password }'LIMIT 1"; 
     echo "$sql"; 
     $rs = $conn->query($sql); 
     $numRows = $rs->num_rows; 
     if($numRows == 1){ 
      echo "you may log in"; 
     } 

我100%肯定,我正確地照耀處的密碼但事情是mysql沒有顯示結果,

+0

'{$ username}'應該是'$ username'吧? –

+0

它會有什麼不同?但無論如何,你是對的 – user962206

回答

0

查看crypt的PHP documentation,因爲您沒有提供SALT值,您將得到平常的結果,其結果往往是一個值的散列與另一個散列不匹配具有相同的價值。