2012-02-20 8 views
3

C#.NETフレームワークに新しいユーザーパスワードを表す文字列が単純すぎるかどうかを確認するビルトインメソッドがあるのだろうか?シンプルさのためにユーザーパスワードを確認する.netメソッドがあります

たとえば、「1234」や「qwerty」や「33333」のようなものは単純すぎます。

PS。私は明らかにこれをすべて自分でコーディングすることができます。私が始める前に私のためにこれを行うことができるプラットフォームに組み込まれているものがあれば、私はちょうど興味がありました。

+1

いいえありません。キーが特定の条件の下にあることが必要な暗号化クラスがいくつかありますが、ポイントが見つからないことがあります。 – Polity

+1

関連項目[パスワードの複雑さはどのように計算しますか?](http://stackoverflow.com/questions/392928/how -do-you-compute-password-complexity)と[パスワードの強さを確認する最善の方法は何ですか?](http://stackoverflow.com/questions/75057/what-is-the-bestway-パスワードの強さを確認する) – Justin

答えて

0

あなたができることは、正規表現バリデーターを使用して、少なくとも1つの特殊文字(またはあなたが気づいているもの)が含まれていることを確認することです。

1

がC#での組み込みの方法はありませんが、あなたは簡単にセットアップをチェック正規表現できます:

少なくとも7つの文字 少なくとも1つの大文字の文字(AZ) 少なくとも1つの番号(0-9 ) 少なくとも1つの特殊な文字

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

申し訳ありませんが、文字列の前に@は何を意味しますか? – ahmd0

+4

-1です。それは多くの弱いパスワードを許し、さらに悪いことに、多くの強力なパスワードを拒否します。例えば、それは私のtruecryptパスワードを拒否し、それは約80ビットのエントロピーを持っています。 – CodesInChaos

+0

@ ahmod0 '@'は、文字列内のエスケープ文字を無視するようにコンパイラに指示する逐語文字列リテラルを示します。詳細はhttp://msdn.microsoft.com/en-us/library/362314fe.aspxを参照してください。 –

関連する問題