2012-04-22 47 views
1

我正在開發一個CMS系統,它將運行我的客戶站點的過程中,但我遇到了一個我試圖避免的情況。 hash()函數需要PHP> = 5.1.2,我顯然不能認爲所有的客戶端都運行這個,因爲我不會處理所有託管的東西。處理缺乏哈希方法(不同的PHP版本 - 相同的代碼)

因此,我之間進行選擇:

  1. 只有SHA1堅持 - 少保
  2. 使用SHA512時可用,否則SHA1 - 壞保持兼容時 它的時候,服務器升級
  3. 使用SHA512只是 - 迫使客戶儘快升級(壞 - 不是 總是他們可以)

我很欣賞所有輸入!

+0

版本5.1.2真的很老(6年更精確)。如果仍然有託管服務提供商在使用舊版本,那麼它們可能不是很有競爭力,因此客戶會避開它們。此外,一次版本升級很好,我們不能只是一年比一年地繼續舊的東西。 – 2012-04-22 12:07:51

+0

如果你正在談論密碼哈希,那麼SHA-1的弱點是無關緊要的。正確使用它要重要得多(即每用戶鹽和足夠的迭代)。 – CodesInChaos 2013-02-08 12:48:44

+0

@CodesInChaos非常真實。我的解決方案是使用Bcrypt,它應該提供你的觀點。 – Zar 2013-02-08 15:36:11

回答

2

哈希主瀏覽器()函數需要PHP> = 5.1.2,而我顯然不能假定所有客戶端上運行這個,因爲我不會處理每個人的託管。

真的嗎?!

  • PHP 5.2是出自從2006年11月
  • PHP 5.3是出自從2009年6月
  • PHP 5.4是出好幾個星期,現在

運行PHP 5.1.2 <手段,它至少(!)6歲,因此本身就是一個安全問題。散列算法或多或少地安全的問題不再重要。

關於問題:sha1()(含鹽)對於大多數使用情況都適用,除非您爲CIA等編寫軟件。關鍵是,即使醃md5() -hash不值得在大多數網站上被破解。

使用SHA512只 - 強制客戶端,以儘快升級(壞的 - 並不總是他們能),當他們拒絕更新6歲的軟件

,他們反正註定...

+0

不知道爲什麼我沒有回覆這個,你的觀點非常有效。感謝您的回答,我決定提高min-php版本,並改用Bcrypt。 – Zar 2013-02-08 15:37:59

1

PHP 5.1.2是released in '06。 您可以放心地將此作爲運行CMS的要求。如果你的一個客戶使用6年前的PHP版本 - 他會遇到比你的系統更加糟糕的問題。 正如你的CMS將不會在IE6至極顯示以及在2006年

+0

非常有效的一點。 – Zar 2013-02-08 15:38:16

相關問題