ウェブサービスなどでアカウントを作成する際にパスワード強度をチェックされることがよくあります。例えばGMailのアカウントを作成する時には下図のように表示されます。
jQueryでパスワード強度を計るライブラリをベースにして、laiso+iphoneさんがiOSアプリ向けに移植されていました。元ネタはこちら。
こちらのコードを参考にして、WindowsストアアプリやWindows Phoneアプリで動くようにしたライブラリを作りました。
PCLで作りましたので、.NET Framework 4.5以上、Windowsストアアプリ(Win8.1以上)、Windows Phoneアプリ(WP8.0以上)のどれでも使えるかと思います。
メソッド名やプロパティについては.NETの命名規則に合わせて、アッパーキャメルケースに直していますが、内部的な処理や使い方については、laisoさんが作られたライブラリのままにしています。
ですので、パスワードの強度を求めるのもシンプルに下記のように書くだけです。
var result = Softbuild.Security.PasswordStrength.Validate("simple"); result.Complexity; // 0.0f - 1.0f result.Valid; // YES or NO
パスワード強度の算出は
- 文字数を長くする
- 小文字、大文字、数字、記号を使う
- 文字の種類を多く使う
で数値が増えるようになっていると思います。頻出単語を辞書データでチェックして警告を出さないのもベースのプロジェクトと同様です。
追記(2014/1/8)
Windowsストアアプリでの使用例として、デモアプリのプロジェクトを追加しました。