- 해당 만드는 방법의 조합은 ASCII 코드를 기반으로 특정 범위의 조합을 기반으로 랜덤 하게 문자를 추출하여 조합하도록 구성하였습니다.
분류
포함여부
ASCII Code Range
특수문자
포함
33 ~ 47, 58 ~ 64, 91 ~ 96
대문자
포함
65 ~ 90
소문자
포함
97 ~ 122
숫자
미 포함
47 ~ 57
/**
* 자릿수(length) 만큼 랜덤한 문자와 특수문자 조합의 랜덤한 문자열을 출력합니다.
*
* @param length 문자의 범위
* @return String 문자 + 특수 문자 조합 문자열
*/publicstatic String generateRandomMixCharNSpecialChar(int length){
SecureRandom secureRandom = new SecureRandom();
/*
* 1. 특수문자의 범위: 33 ~ 47, 58 ~ 64, 91 ~ 96
* 2. 대문자의 범위: 65 ~ 90
* 3. 소문자의 범위: 97 ~ 122
* -- 제외 대상 범위(숫자) : 48 ~ 57
*/
String charNSpecialChar = IntStream.concat(
IntStream.rangeClosed(33, 47),
IntStream.rangeClosed(58, 126))
.mapToObj(i -> String.valueOf((char) i))
.collect(Collectors.joining());
StringBuilder builder = new StringBuilder();
for (int i = 0; i < length; i++) {
builder.append(charNSpecialChar.charAt(secureRandom.nextInt(charNSpecialChar.length())));
}
return builder.toString();
}
// 호출부
String randomValue = CommonUtils.generateRandomMixCharNSpecialChar(8); // [공통함수] 문자 + 특수문자 조합 문자열 생성// 출력 값 예시
System.out.println("random value :: "+ randomValue); // random value :: .^lmI\\i_
3) 랜덤 문자열 만들기: 숫자 + 특수문자 조합
💡 랜덤 문자열 만들기: 숫자 + 특수문자 조합
- 해당 만드는 방법의 조합은 ASCII 코드를 기반으로 특정 범위의 조합을 기반으로 랜덤하게 문자를 추출하여 조합하도록 구성하였습니다.
분류
포함 여부
ASCII Code Range
특수문자
포함
33 ~ 47, 58 ~ 64, 91 ~ 96
숫자
포함
47 ~ 57
대문자
미 포함
65 ~ 90
소문자
미 포함
97 ~ 122
/**
* 자릿수(length) 만큼 랜덤한 숫자와 특수문자 조합의 랜덤한 문자열을 출력합니다.
*
* @param length 문자의 범위
* @return String 숫자 + 특수 문자 조합 문자열
*/publicstatic String generateRandomMixNumNSpecialChar(int length){
SecureRandom secureRandom = new SecureRandom();
/*
* 1. 특수문자의 범위 33 ~ 47, 58 ~ 64, 91 ~ 96
* 2. 숫자의 범위 : 48 ~ 57
* -- 대문자의 범위(제외): 65 ~ 90
* -- 소문자의 범위(제외): 97 ~ 122
*/
String charNSpecialChar = IntStream.concat(
IntStream.rangeClosed(33, 64),
IntStream.concat(
IntStream.rangeClosed(91, 96),
IntStream.rangeClosed(123, 126)))
.mapToObj(i -> String.valueOf((char) i))
.collect(Collectors.joining());
StringBuilder builder = new StringBuilder();
for (int i = 0; i < length; i++) {
builder.append(charNSpecialChar.charAt(secureRandom.nextInt(charNSpecialChar.length())));
}
return builder.toString();
}
// 호출부
String randomValue = CommonUtils.generateRandomMixNumNSpecialChar(8); // [공통함수] 숫자 + 특수문자 조합 문자열 생성// 출력 값 예시
System.out.println("random value :: "+ randomValue); // random value :: <61[>*?.
4) 랜덤 문자열 만들기 : 문자 + 숫자 + 특수문자 조합
💡 랜덤 문자열 만들기 : 문자 + 숫자 + 특수문자 조합
- 해당 만드는 방법의 조합은 ASCII 코드를 기반으로 특정 범위의 조합을 기반으로 랜덤하게 문자를 추출하여 조합하도록 구성하였습니다.
분류
포함여부
ASCII Code Range
특수문자
포함
33 ~ 47, 58 ~ 64, 91 ~ 96
숫자
포함
47 ~ 57
대문자
포함
65 ~ 90
소문자
포함
97 ~ 122
/**
* 자릿수(length) 만큼 랜덤한 숫자 + 문자 + 특수문자 조합의 랜덤한 문자열을 출력합니다.
*
* @param length 문자의 범위
* @return String 숫자 + 문자 + 특수 문자 조합 문자열
*/publicstatic String generateRandomMixAll(int length){
SecureRandom secureRandom = new SecureRandom();
/*
* 1. 특수문자의 범위 33 ~ 47, 58 ~ 64, 91 ~ 96
* 2. 숫자의 범위 : 48 ~ 57
* 3. 대문자의 범위: 65 ~ 90
* 4. 소문자의 범위: 97 ~ 122
*/
String charNSpecialChar =
IntStream.rangeClosed(33, 126)
.mapToObj(i -> String.valueOf((char) i))
.collect(Collectors.joining());
StringBuilder builder = new StringBuilder();
for (int i = 0; i < length; i++) {
builder.append(charNSpecialChar.charAt(secureRandom.nextInt(charNSpecialChar.length())));
}
return builder.toString();
}
// 호출부
String randomValue = CommonUtils.generateRandomMixCharNSpecialChar(8); // [공통함수] 숫자 + 문자 + 특수문자 조합 문자열 생성// 출력 값 예시
System.out.println("random value :: "+ randomValue); // random value :: 2^e0M?S5
5) 임시비밀번호 활용방법
1. 숫자 + 소문자 조합의 임시 비밀번호
💡 숫자 + 소문자 조합의 임시 비밀번호 - 임시비밀번호로 자주 사용되는 숫자 + 소문자 조합의 임시 비밀번호로 구성된 랜덤한 숫자가 출력되도록 구성하였습니다. - 해당 만드는 방법의 조합은 ASCII 코드를 기반으로 특정 범위의 조합을 기반으로 랜덤하게 문자를 추출하여 조합하도록 구성하였습니다.
/**
* 자릿수(length) 만큼 랜덤한 숫자 소문자 조합의 랜덤한 문자열을 출력합니다.
*
* @param length 문자의 범위
* @return String 숫자 + 소문자 조합의 랜덤한 문자열을 출력합니다.
*/publicstaticString generateRandomTempPasswordType1(int length) {
SecureRandom secureRandom = new SecureRandom();
/*
* 1. 소문자의 범위: 97 ~ 122
* 2. 숫자의 범위 : 48 ~ 57
* -- 대문자의 범위(제외): 65 ~ 90
* -- 특수문자의 범위(제외): 33 ~ 47, 58 ~ 64, 91 ~ 96
*/String tempPassword =
IntStream.rangeClosed(33, 126)
.mapToObj(i -> String.valueOf((char) i))
.collect(Collectors.joining());
StringBuilder builder = new StringBuilder();
for (int i = 0; i < length; i++) {
builder.append(tempPassword.charAt(secureRandom.nextInt(tempPassword.length())));
}
return builder.toString();
}
// 호출부String randomValue = CommonUtils.generateRandomTempPasswordType1(8); // [공통함수] 숫자 + 소문자 조합 문자열 생성// 출력 값 예시
System.out.println("random value :: "+ randomValue); // random value :: swc1um71