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

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

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

スポンサーリンク

実現したいこと

このプログラムで実現したいこととして

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

この3つの機能を実装してみたいと思います。

プログラミングを書く

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

サンプルコードと出力結果

サンプルコードを以下に示します。

import java.util.Random;
import java.util.Scanner;

public class MakePasswprd {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("文字数を入力してください");
		int num = scan.nextInt();
		System.out.println("大文字を使う? 使う場合「y」を入力してください");
		String str1 = scan.next();
		System.out.println("数字を使う? 使う場合「y」を入力してください");
		String str2 = scan.next();
		System.out.println(createPassword(num,str1,str2));
		scan.close();
	}

	public static StringBuilder createPassword(int count,String str1,String str2) {
		StringBuilder sb1 = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
		StringBuilder sb2 = new StringBuilder("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
		StringBuilder sb3 = new StringBuilder("0123456789");
		if(str1.equals("y"))
			sb1.append(sb2);
		if(str2.equals("y"))
			sb1.append(sb3);
		StringBuilder sb = new StringBuilder();
		Random rand = new Random();
		for (int i = 0; i < count; i++) {
			int num = rand.nextInt(sb1.length());
			sb.append(sb1.charAt(num));
		}
		return sb;
	}
}

サンプルコードの出力結果(一例)を以下に示します。

文字数を入力してください
10
大文字を使う? 使う場合「y」を入力してください
y
数字を使う? 使う場合「y」を入力してください
y
7xAr1yOCi1

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

まとめ

Javaを使ってパスワードを生成しするプログラミングを作ってみました。

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

スポンサーリンク
Dim雑記
タイトルとURLをコピーしました