2014-09-02 47 views
0

我使用crypt()函數將我的密碼散列到數據庫中。調用回密碼?

$cryptpass = crypt($user_pass); 

現在,當我嘗試用我的密碼是「測試」它不會工作到登錄英寸 下面是從登錄的PHP

$user_name = mysql_real_escape_string($_POST['user_name']); 
$user_pass = crypt($_POST['user_pass']); 
$user_level = mysql_real_escape_string($_POST['user_level']); 

$encrypt = md5($user_pass); 
$admin_query = "select * from admin_login where user_name='$user_name' AND user_pass='$user_pass' AND user_level='$user_level'"; 

對不起,我是有點新密碼散列,在整個過程中我救了我的密碼爲純文本。

編輯:當我在這裏交相輝映查詢的結果 隱窩= $ 1 $ vh4.Mq4 $ YaABh9aqRKbKpACTDApWb1,SELECT * FROM admin_login其中user = 'testcr' AND user_pass = '$ 1 $ vh4.Mq4 $ YaABh9aqRKbKpACTDApWb1' AND user_level ='a',真正的密碼是「test」。

+0

[Crypt](http://php.net/manual/ro/function.crypt.php)在php.net上。那裏很自我解釋。 – 2014-09-02 22:13:32

+0

我剛剛從那裏出來,也許我太笨了,無法理解密碼。 – user3684958 2014-09-02 22:14:32

+0

數據庫中的哈希是什麼樣的?設置'$ encrypt'有什麼意義?你沒有使用它。此外,請回顯您的查詢以查看它的外觀,並確保它符合您的期望。 – 2014-09-02 22:15:51

回答

0

您已經選擇了一種非常不安全的方式來存儲密碼(無醃製的DES和MD5哈希)。您應該考慮使用PHP的函數password_hash()來創建BCrypt哈希。

爲了驗證,您首先必須通過用戶名從數據庫中獲取散列,之後您可以使用password_verify()驗證密碼。由於鹽,直接驗證哈希與SQL查詢是不可能的。

// Hash a new password for storing in the database. 
// The function automatically generates a cryptographically safe salt. 
$hashToStoreInDb = password_hash($password, PASSWORD_BCRYPT); 

// Check if the hash of the entered login password, matches the stored hash. 
// The salt and the cost factor will be extracted from $existingHashFromDb. 
$isPasswordCorrect = password_verify($password, $existingHashFromDb); 

如果您有興趣瞭解更多關於此主題的信息,請查看我的關於safely storing passwords的教程。

0

嘗試調試您的SQL語句。

$admin_query = "select * from admin_login where user_name='$user_name' AND user_pass='$user_pass' AND user_level='$user_level'"; 

echo $admin_query; 

在SQL引擎中運行查詢,看看是否可以發現差異。

+0

好吧,我已經在sql中運行queri,它看起來像這樣。 crypt = $ 1 $ vh4.Mq4。$ YaABh9aqRKbKpACTDApWb1,從admin_login中選擇*其中user_name ='testcr'AND user_pass ='testcr'AND user_level ='a',我輸入的密碼是testcr,但是在數據庫crypt中不匹配。 – user3684958 2014-09-02 22:50:47

+0

編輯您原來的帖子 - 我在您的評論中看不到任何內容 – Corbin 2014-09-02 22:52:12

+0

完成查看帖子。 – user3684958 2014-09-02 22:57:49