我在使用crypt函數的php中使用blowfish。我想知道如果密碼範圍是0001 - 9999,猜測用戶密碼需要多長時間?需要多長時間才能猜出指定範圍內的用戶密碼?
我應該爲用戶實現另一個輸入密碼值嗎?
我在使用crypt函數的php中使用blowfish。我想知道如果密碼範圍是0001 - 9999,猜測用戶密碼需要多長時間?需要多長時間才能猜出指定範圍內的用戶密碼?
我應該爲用戶實現另一個輸入密碼值嗎?
這基本上給你10,000組合,它會很快(即時)來猜測它。
檢查這個舊錶的快得多現在Password Recovery Speeds
在任何現代計算機上測試所有大小爲4的數字密碼是極其快速。你應該確保你的密碼由不同的字符組成(大寫/小寫字母,標點符號,特殊字符),並且是較長(至少10個字符,甚至更多取決於系統的敏感度)。
查看由Jeff Atwood撰寫的關於這個主題的this very interesting article。
比方說,你想出了散列的速度和易用性的良好結合。
more hashing time =~ more brute-force resilient
但在同一時間
more hashing time =~ less usability
假設你做了一些妥協,並決定它的好密碼檢查邏輯需要長達5
秒(你這樣做有大量的迭代,這意味着你多次密碼散列密碼)。
時候打破(以小時計) =組合* hashing_time (單位:秒)/3600(+仰視的時候,平凡)
讓我們試一下
時候打破(以小時) = 9999 * 5/3600 =大概13小時48分
所以底線,遵循@Wookai的建議,不要使用短數字密碼。
實際上它正好是9999. – Gumbo 2012-07-27 01:41:08
是的,我只是想向老闆解釋這一點。我的銀行使用帶有另一個密碼輸入的4位數字引腳進行身份驗證。我認爲那樣更好。我只是想知道我是否可以大幅減緩蠻力攻擊。 – samaras 2012-07-27 07:08:41
@samaras,我不這是你的主要問題。芬蘭的銀行使用長度爲6的數字密碼,但他們使用雙因素身份驗證,並在3次錯誤嘗試後鎖定帳戶。 – Adi 2012-07-27 15:27:52