2012-06-08 156 views
2

My功能如下:PBKDF2推薦的密鑰大小?

pbkdf2($raw_pw,$salt,1000,128) 

1000是遍數,和128是關鍵的尺寸。該函數返回一個二進制密鑰,我使用base64將其存儲在數據庫中。

我的問題是:什麼是使用SHA512 PBKDF2推薦的密鑰大小和鹽大小?

將爲32的密鑰長度是一樣的128密鑰大小爲安全的?

+0

哎呦。爲什麼要將派生密鑰存儲在數據庫中?通常這是一個壞主意。 – Cheeso

+3

我將它用作密碼哈希 – user962449

回答

4

1000是迭代次數,而不是通過次數。 128是最後的長度。

根據維基百科http://en.wikipedia.org/wiki/PBKDF2和有關加密(如你問或32),你應該使用更多的則128字節我自己的小知識。結果鍵的大小相當於散列衝突的機會。使用256(與WPA2一樣)或512應該不成問題,對於CPU /內存/其他也不是問題。

另外1000是相比PBKDF2的其他集成,迭代的一個非常小的量。您可以輕鬆使用5000或10000(如iOS4),這可能會導致類似於10ms的更多處理時間,但提供了一種更強大的關鍵方式(請參閱:可能的攻擊者也需要運行10k迭代,這可能會改變他需要的時間1天至10天,或1個月至近1年)。