2013-01-02 41 views
0

我正在爲我的一個android應用程序編寫一個登錄系統。我正在使用mysql登錄系統的php & php,使用來自android應用程序的登錄請求。請注意,該帳戶也是由設備製作的(註冊),現在是問題所在。Php crypt()函數返回「奇怪的結果」

地穴功能似乎對額外的東西很多套結它包含正確的散列密碼,但它不一樣在數據庫中,其最好的,如果我告訴你:

在我的數據庫密碼:$ 6 $ WX6WbSQfm5iN $ VX/B9TKLkcnVDxIPvKc9TUzpWLjD77mlCk

肯定使用正確的密碼,使用像這樣的

crypt($userPasswordFromPost, $encryptedPasswordFromDB) 

這個函數返回一個像這樣的值:$ 6 $ WX6WbSQfm5iN $ VX/B9TKLkcnVDxIPvKc9TUzpWLjD77mlCk kOj43jHRW25ecYfbhgGtm27tVG9oSGHqaKrOugYrBpjwzZ // gel0

請注意,我不得不把大膽上面的字符串的空間,但沒有空間是由該函數返回完整的字符串,因爲你可以看到正確的散列密碼後面有很多廢話。

System info 
running on: Ubuntu Linux 12.10 (64 bit) 
php version: PHP 5.4.6-1ubuntu1.1 (cli) 

更多信息可根據要求提供。任何幫助都很受歡迎!

+0

根據[文檔](http://php.net/manual/en/function.crypt.php),第二個參數爲'crypt'是一種可選的鹽。你爲什麼要將密碼存儲在數據庫中? –

+1

來自數據庫的密碼包含salt。在文檔中看起來更低,第一個例子 – HcgRandon

+0

通過調用crypt('mypassword')函數創建數據庫中的密碼 – HcgRandon

回答

1

好吧我在這個時候感覺非常愚蠢。我的MySQL數據庫密碼字段限於varchar(50),所以它切斷了密碼,並且他們不可能平等。我把數據庫字段增加到了200以上,但我寧願不再接受這個機會。謝謝大家的時間,謝謝查爾斯發現問題