我們被要求將密碼強度驗證添加到我們的系統從客戶。他們所要求的是,密碼至少8個字符,並且不包括「常見詞語,如天,月等」。密碼強制避免常見字詞,如天,月等
有誰知道任何算法或示例,將涵蓋此級別的密碼強度測試?
感謝
我們被要求將密碼強度驗證添加到我們的系統從客戶。他們所要求的是,密碼至少8個字符,並且不包括「常見詞語,如天,月等」。密碼強制避免常見字詞,如天,月等
有誰知道任何算法或示例,將涵蓋此級別的密碼強度測試?
感謝
爲什麼不從互聯網上下載任何'密碼'的文本列表(其中將包括許多許多字典詞彙)。在谷歌搜索詞表和密碼,我相信你會得到很好的打擊。
使用外部列表意味着他們可以不斷更新不允許的密碼列表 - 而不是像上面的例子那樣對其進行硬編碼。
您可以使用匹配的名稱正則表達式....長度很容易(只檢查長度屬性)......這裏是如何捕捉到,如果它有一個例子它裏面天...
using System.Text.RegularExpressions;
class tester
{
static void Main()
{
string[] NotValid = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday",};
string password = "Monday5";
bool isvalid = password.Length > 7;
foreach (string s in NotValid)
if (Regex.IsMatch(password, "^.*" + s + ".*$", RegexOptions.IgnoreCase))
isvalid = false;
if(!isvalid)
Console.WriteLine("Your password doesn't match our strength requirements");
}
}
如果您的密碼包含任何NotValid陣列中的單詞,然後將isValid方法是錯誤的......
你可以找到關於C#正則表達式的here
更多信息3210
你使用的是C#嗎? – nightshade
我正在使用vb.net,但我可以根據需要進行轉換。 – Matt
你有沒有試過我的解決方案?我只是導入了你需要添加的庫(當我打開一個項目時其他4個已經來到這裏) – nightshade