今回は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
パスワードを生成することができました。
ランダムクラスを使うことでランダムなパスワードが作れますね。追加機能なども考えていきたいです。以上で記事を終わりにします。