【Java】ランダムなパスワードを生成してみる

ランダムなパスワードを生成してみるプログラミング制作物
プログラミング制作物

今回はJavaでランダムなパスワードを生成するプログラムを書いてみたいと思います。

スポンサーリンク

実装したいこと

このプログラムで実現したいこととして、以下の3つの機能を実装してみたいと思います。

実装したいこと
  • 文字数を指定してランダムな文字列を生成する
  • 使う文字種はアルファベット(小文字)を基本とする
  • アルファベットの大文字と数字も使えるようにする

プログラミングを書く

実際に書いてみました。StringBuilderクラスでパスワードに使う文字種を提示して、Randomクラスでランダムに文字列を選びだして生成していきます。

  • サンプルコード
import java.util.Random;

public class MakePassword {

  /** 実行用mainメソッド */
  public static void main(String[] args) {
    System.out.println(makePassword(10, true, true));
  }

  /** パスワードを作成 */
  private static StringBuilder makePassword(int length, boolean uppercaseFlg, boolean digitFlg) {
    StringBuilder lowercase = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
    StringBuilder uppercase = new StringBuilder("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
    StringBuilder digit = new StringBuilder("0123456789");

    if (uppercaseFlg) {
      lowercase.append(uppercase);
    }
    if (digitFlg) {
      lowercase.append(digit);
    }

    StringBuilder password = new StringBuilder();

    Random rand = new Random();
    for (int i = 0; i < length; i++) {
      int num = rand.nextInt(lowercase.length());
      password.append(lowercase.charAt(num));
    }

    return password;
  }
}
  • 出力結果(一例)
qcFnJWtL8B

パスワードを生成することができました。

ランダムクラスを使うことでランダムなパスワードが作れますね。追加機能なども考えていきたいです。以上で記事を終わりにします。

スポンサーリンク
Dim雑記