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();
}
}