C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でパスワードの有効性をチェックするプログラムの書き方

パスワードを作成する際、多くのWebサイトでは「強固なパスワードにしてください」といったバリデーション(入力チェック)の要件を目にしたことがあるでしょう。一般的なパスワード要件は以下のとおりです。

  • 8文字以上14文字以内
  • 小文字を1つ以上含む
  • 空白文字を含まない
  • 大文字を1つ以上含む
  • 特殊文字を1つ以上含む

以下では、これらの条件をC#で一つずつ実装する方法を解説します。

8文字以上14文字以内であること

if (passwd.Length < 8 || passwd.Length > 14)
    return false;

パスワードの長さが8文字未満、または14文字を超えている場合は無効と判定します。

小文字を1つ以上含むこと

if (!passwd.Any(char.IsLower))
    return false;

LINQのAnyメソッドとchar.IsLowerを組み合わせることで、パスワード内に小文字が存在するかどうかを簡潔に判定できます。

空白文字を含まないこと

if (passwd.Contains(" "))
    return false;

パスワードに半角スペースが含まれている場合は無効と判定します。

大文字を1つ以上含むこと

if (!passwd.Any(char.IsUpper))
    return false;

char.IsUpperを使うことで、パスワード内に大文字が含まれているかどうかを確認できます。

特殊文字を1つ以上含むこと

string specialChars = @"%!@#$%^&*()?/>.<,:;'\|}]{[_~`+=-" + "\"";
char[] specialChArray = specialChars.ToCharArray();
foreach (char ch in specialChArray) {
    if (passwd.Contains(ch))
        return true;
}

特殊文字の一覧を文字配列に変換し、パスワードにそれらのいずれかが含まれているかを順番にチェックします。ここまでの条件をすべてクリアできていれば、そのパスワードは有効と判断されます。

  1. 【Python】二分木が別の木の部分木(サブツリー)かどうかを判定する方法

    はじめにプログラミングにおいて、ある二分木が別の二分木の部分木(サブツリー)であるかどうかを判定する処理は、よく登場する基本的な課題の一つです。この記事では、Pythonを使ってこの問題を効率的に解く方法を、具体的なコード例とともにわかりやすく解説します。問題の概要2つの二分木が与えられたとき、「2つ目の木が1つ目の木の部分木になっているか」を確認します。たとえば、次のような入力があった場合:この場合、root2(値4を根とする木)は root1 の中にそのまま含まれているため、出力は True になります。解法のアプローチこの問題は再帰(recursion)を使うことでシンプルに解けます。判

  2. Pythonでパスワードの有効性をチェックする方法|正規表現を使った判定プログラム

    パスワードの妥当性チェックは、アプリケーション開発における重要なセキュリティ対策の一つです。本記事では、Pythonのreモジュール(正規表現)を使用して、入力されたパスワードが有効かどうかを判定するプログラムを紹介します。re.search()メソッドを活用することで、アルファベット・数字・特殊文字の検証をシンプルに実装できます。 パスワードの検証ルール(アルゴリズム) 有効なパスワードとみなすためには、以下の条件をすべて満たす必要があります。 Step 1: 英数字で構成された文字列をパスワードとして入力として受け取る Step 2: 文字数が最低8文字以上であることを確認する Step