2015-03-18 31 views
0

其他不僅僅是散列這樣的密碼:鼎立安全使用

password_hash($password, PASSWORD_BCRYPT); 

什麼是迭代bcrypt的推薦幾輪?我確信四輪河豚容易受到二階差分攻擊,但在大多數情況下,使用哈希處理的服務器可能會很好,成本大得多。 14輪可以與僞隨機置換區分開來,所以排除了這一點。

是16可能的最高成本?另外鹽是如何生成的(如果省略)?

+0

沒有辦法推薦任何東西。這一切都取決於你的威脅評估。如果國家安全局在你之後,那麼500 kajillion輪可能是不夠的。如果谷歌盒式解碼器環很小,那麼跳過bcrypt並用base64或其他東西「加密」。 – 2015-03-18 20:55:46

+0

請您重新閱讀標題? – schmitsz 2015-03-18 20:57:30

回答

1

如果使用BCrypt,則不指定輪次數,而是定義成本因子。成本因素將提高到2的冪,這意味着將成本因子增加1,將使計算時間加倍。

$numberofRounds = 2^$costFactor 

默認值是目前10,最高可能值目前31要確定應全面走另一條路,衡量你的服務器需要針對不同的成本因素的時間成本因素。然後,您可以決定服務器可承受的成本因素。

PHP文檔中有一個小的example script,這有助於找到合適的成本因素。

+0

鹽怎麼樣?如果作爲參數被省略,它是如何產生的? – schmitsz 2015-03-18 21:21:44

+0

@schmitsz - 最好省略此參數,然後該函數將從操作系統的隨機源生成一個加密安全的鹽。 – martinstoeckli 2015-03-18 21:23:42

+0

我想你誤解了我的問題。我不是問什麼更好,但是如何在沒有指定參數時完成鹽析。 – schmitsz 2015-03-18 21:29:21