평범한 연구소

[JAVA] 10자리 무작위 임시 패스워드 만들기 본문

JAVA/알고리즘 공부

[JAVA] 10자리 무작위 임시 패스워드 만들기

soyeonisgood 2022. 7. 22. 09:04
  • 대문자, 소문자, 숫자가 패스워드 될 수 있음
  • String이 아닌 StringBuilder 쓰는 이유: append() 사용하기 때문. String으로 선언하면 난수 생성때마다 계속 '+' 해줘야하므로 성능이 떨어짐

 

package ch07.unit4;

public class Quiz05 {

	public static void main(String[] args) {
		String s;
		
		s = generatePwd();
		System.out.println("10자리 패스워드: "+s);
		
		s = generatePwd();
		System.out.println("10자리 패스워드: "+s);
		
	}

	public static String generatePwd() {
		// 10자리 무작위 임시 패스워드 만들기
		// 소문자 대문자 숫자
		StringBuilder sb = new StringBuilder();
		// String이 아닌 StringBuilder 쓰는 이유: append(). String은 계속 '+' 해줘야함
		// String s="[0-9A-Za-z]"; // 정규식은 있는지의 유무 확인용.
		String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_=abcdefghijklmnopqrstuvwxyz";
		int n;
		
		for(int i=0; i<10; i++) {
			n = (int)((Math.random()*s.length()));
			sb.append(s.substring(n, n+1));
		}
		s = sb.toString();
	
		return sb.toString();
	}
}