2011-08-14 62 views
2

我正在使用PHP(Codeigniter)和Phils RESTserver開發API。 我正在創建一個使用密碼和鹽的crypt()的哈希。服務器上的加密與本地計算機上的加密不同

問題是crypt()算法的結果在我的本地機器和服務器上與 不同。

它在本地正常工作,但不在服務器上(簡稱)。我知道密碼和鹽是相同的,因爲我試圖將它們硬編碼。從本地機器

哈希:

$2a$10$g6J7CUjJvB0JpTd7UcrowePEbqp/oBmZEpd7vS.5HFYx38f08Tb/a 

哈希從服務器:

$2jkP2/LlC/H6 

什麼可能是錯誤的?

(服務器運行centos 5)。

回答

3

您的PHP版本可能不支持cryptfish hashfish哈希。輸出中的$ 2a $表明您嘗試使用CRYPT_BLOWFISH,這可能無法在兩個平臺上使用。

http://uk.php.net/crypt

一個錯誤是固定在PHP 5.3.2:

修正了無效輪河豚行爲返回 「失敗」 字符串 ( 「* 0」 或 「* 1」),而不是退回到DES。

所以我猜你的服務器散列會回落到DES,因爲它只包含鹽的前2個字符。

+0

更多可移植性使用'hash()':http://www.php.net/manual/en/book.hash.php – Mchl

相關問題