2011-04-29 50 views
4

我使用bcrypt在我的數據庫中存儲密碼,使用7的工作因子,這在我合理的現代筆記本電腦上花費大約0.02s來散列一個密碼。bcrypt - 跟上摩爾定律

Coda Hale說使用bcrypt可以通過調整工作因子來「跟上摩爾定律」。但是沒有辦法重新加密用戶的密碼,因爲我沒有存儲明文。我該如何保持我的數據庫保持最新狀態並且難以破解(假設它會在5年以上的時間內出現,這會成爲一個問題)?

回答

9

登錄時重新加密。請參閱Optimal bcrypt work factor

請記住,該值存儲在密碼:$2a$(2 chars work)$(22 chars salt)(31 chars hash)。這不是一個固定的價值。

如果您發現負載過高,只需在下次登錄時進行設置,就可以將密碼更快地計算出來。同樣,隨着時間的推移和你得到更好的服務器,如果負載不是問題,你可以在登錄時升級它們的散列強度。

訣竅是使它保持大致相同的時間與摩爾定律一起永遠地走向未來。 編號爲log2,所以每次計算機加倍速度時,加1到默認編號 ...