2012-02-20 171 views
3

我在想C#.NET框架中是否有內置方法來檢查代表新用戶密碼的字符串是否太簡單?例如,「1234」或「qwerty」或「33333」等內容太簡單了。是否有.net方法檢查用戶密碼是否簡單

PS。我明顯可以自己編寫所有這些代碼。我只是好奇,如果有什麼內置的平臺可以在開始之前爲我做到這一點。

+1

不,沒有。有一些加密類,雖然這需要密鑰在某些條件下,但我認爲這是錯過了點... – Polity 2012-02-20 10:02:33

+1

另請參見[你如何計算密碼的複雜性?](http://stackoverflow.com/questions/392928/how - 你計算密碼複雜性)和[檢查密碼強度的最佳方法是什麼?](http://stackoverflow.com/questions/75057/what-is-the-best-way-以檢查密碼的強度) – Justin 2012-02-20 10:14:06

回答

0

你可以做的是使用正則表達式驗證器來確保它包含至少一個特殊字符(或任何你想到的)。

1

有在C#沒有內置的方法,但可以方便地設置一個正則表達式的檢查:

至少7個字符 至少1個大寫字符(AZ) 至少1數字(0-9 ) 至少有一個特殊字符

public static bool IsPasswordStrong(string password) 
{ 
    return Regex.IsMatch(password, @"^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).*$"); 
} 
+0

對不起,但是@在字符串前面意味着什麼? – ahmd0 2012-02-20 10:15:18

+4

-1爲壞政策。它允許許多弱密碼,更糟糕的是,它拒絕了許多強密碼。例如,它會拒絕我的truecrypt密碼,並且它的熵大約爲80位。 – CodesInChaos 2012-02-20 10:25:40

+0

@ ahmod0'@'表示逐字字符串文字,它告訴編譯器忽略字符串中的轉義字符。請閱讀http://msdn.microsoft.com/en-us/library/362314fe.aspx瞭解更多信息。 – 2012-02-20 10:34:29

相關問題