我必須創建一個密碼強度檢查器,但我無法獲得的唯一要求是「不是字典中的單詞或專有名稱」。我有一個60兆字節的文本文件。例如,當你使用「測試」時,它會失敗,但如果你使用test123,它會在失敗時通過。密碼要求 - 不是字典的單詞或專有名稱
我該代碼是:
int counter = 0;
string line;
while ((line = file.ReadLine()) != null)
{
if (line.Contains(pwd)) { return false; }
counter++;
}
我將如何分析用戶的密碼拉了字典中的單詞?
或者我應該嘗試實施一個正則表達式,迫使每3個字符是一個數字或特殊字符,避免字典文件一起?謝謝。
你還沒有定義你想要失敗的東西。 'test123'不是詞典單詞。你不能簡單地說「任何包含字典單詞的東西」,因爲1)沒有意義,2)有很常見的短字符串是字典單詞,比如'a'。你不想拒絕每個包含'a'的密碼 – CodesInChaos 2011-06-08 13:53:14
「Qj16!!!」(注意「中間的」)有效還是無效?我問,因爲「test123」不是一個字典詞,它只包含一個。真正的要求是什麼?密碼是否可以包含「a」或「I」? – 2011-06-08 13:54:16
關於你的「或」建議,強制「每個* n *字符是* x *類型」的想法不會讓你走上安全之路。首先,你已經公佈了關於如何破解它的第一個細節。 – 2011-06-08 13:54:26