Javaでランダムな文字列(パスワード)を生成するプログラムを書いてみます。
このプログラムで実現したいこととして、以下の3つの機能を実装してみたいと思います。
実際に書いてみました。StringBuilderクラス
でパスワードに使う文字種を提示して、Randomクラス
でランダムに文字列を選びだして生成していきます。
1import java.util.Random;
2
3public class MakePassword {
4
5 /** 実行用mainメソッド */
6 public static void main(String[] args) {
7 System.out.println(makePassword(10, true, true));
8 }
9
10 /** パスワードを作成 */
11 private static StringBuilder makePassword(int length, boolean uppercaseFlg, boolean digitFlg) {
12 StringBuilder lowercase = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
13 StringBuilder uppercase = new StringBuilder("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
14 StringBuilder digit = new StringBuilder("0123456789");
15
16 if (uppercaseFlg) {
17 lowercase.append(uppercase);
18 }
19 if (digitFlg) {
20 lowercase.append(digit);
21 }
22
23 StringBuilder password = new StringBuilder();
24
25 Random rand = new Random();
26 for (int i = 0; i < length; i++) {
27 int num = rand.nextInt(lowercase.length());
28 password.append(lowercase.charAt(num));
29 }
30
31 return password;
32 }
33}
実行結果の一例が以下になります。
1qcFnJWtL8B
パスワードを生成することができました。
ランダムクラスを使うことで、ランダムパスワードが作れますね。追加機能なども考えてみたいです。以上で記事を終わりにします。