C# でランダムパスワードを生成する

Fil Zjazel Romaeus Villegas 2023年10月12日
C# でランダムパスワードを生成する

このチュートリアルでは、System.Web.Security を使用して C# でランダムなパスワードを生成する方法を示します。

C#System.Web.Security メソッドを使用してランダムパスワードを生成する

.NET Framework は、指定した任意の長さのパスワードを生成するために使用できる関数を提供し、その関数 GeneratePasswords を使用して特定の数の英数字以外の文字を含みます。これを利用するには、最初に System.Web への参照が追加されていることを確認する必要があります。この参照を追加するには、以下の手順に従います。

  • ソリューションエクスプローラーに移動します
  • 参照を右クリックします
  • 参照の追加をクリックします
  • 左側の Assemblies タブをクリックします
  • System.Web.dll ファイルを見つけて OK をクリックします

参照を正常に追加したら、コードでその using ステートメントを使用できます。

using System.Web.Security;

GeneratePassword 関数は 2つの入力を受け入れます。1つ目は、生成するパスワードに必要な文字数です。2 番目の入力は、必要な英数字以外の文字の数を示します。生成されたパスワードは文字列変数として返され、コードで使用できます。

例:

using System;
using System.Web.Security;

namespace GeneratePassword_Example {
  class Program {
    static void Main(string[] args) {
      // Create a for loop to run the code 10 times
      for (int i = 0; i < 10; i++) {
        // Store the password generated into a string variable
        // The password will have a length of 8 characters and 3 non alphanumeric characters
        string generated_pass = Membership.GeneratePassword(8, 3);
        // Print the newly generated password to the console
        Console.WriteLine("Password " + (i + 1).ToString() + ": " + generated_pass);
      }

      Console.ReadLine();
    }
  }
}

上記の例では、ループ内で GeneratePassword 関数を 10 回実行して、生成されたすべてのパスワードがどのように異なり、入力パラメーターによって設定された要件を満たしているかを示しています。

出力:

Password 1: *X!2OL%8
Password 2: _0=[qjFq
Password 3: &zGiOR=#
Password 4: *Is8&]2j
Password 5: Dv-${$Pt
Password 6: *Gkr-B4.
Password 7: )e==gu3O
Password 8: X$+LRe(e
Password 9: *2Y[.gpJ
Password 10: .W=y1zF&

関連記事 - Csharp Random