2013-11-24 52 views
0

我第一次嘗試在PHP和我正在與password_compat工作,因爲服務器運行的版本的PHP < 5.5。Php登錄系統與鹽漬哈希不能再次匹配數據庫

我有一組用戶的詳細信息,我已經自動存儲到數據庫中。每個用戶都有從$random_salt = mcrypt_create_iv(24, MCRYPT_DEV_URANDOM);生成一個唯一的鹽和我一直試圖將其存儲到數據庫中的BLOB和沿着我存儲我的哈希密碼具有以下

$options = array('cost' => 8, 'salt' => $random_salt); 
$password = password_hash($password, PASSWORD_BCRYPT, $options); 

爲了驗證我查詢數據庫,讓我的匹配並將salt屬性傳遞給變量$ salt,並獲取存儲的散列密碼。最後,使用以下

$options = array('cost' => 8, 'salt' => $salt); 
$password = password_hash($password, PASSWORD_BCRYPT, $options); 
$intVar = (int) password_verify($password, $db_password); 

我的成績至今在剛剛登錄的一個是不匹配。

我哪裏錯了?它是鹽的數據庫屬性數據類型嗎?我使用password_hash?

回答

2

我剛剛發現,當自動進入數據庫時​​,通過製表符分隔文件讀取時,回車符「\ r」仍然存在於我的密碼末尾。該計劃一直都是正確的。我的密碼是錯誤的「\ r」。

+0

爲了解決這個問題以及發佈解決方案,您(以及upvote)很好。 – crafter