프로젝트를 진행하던 중 흔히들 사용하는 랜덤 인증번호 생성 프로세스가 필요해 작성해보았다. 생성되는 인증번호는 영어 소문자와 숫자의 조합이다. (인증번호에 대소문자 구분하는 것 만큼 짜증나는 것이 없기에...)
코드
import java.security.SecureRandom;
/**
* 랜덤 인증번호 생성 클래스
*/publicclassRandomAuthCode {
// 인증 코드에 사용될 문자들privatestaticfinalStringCHARACTERS="abcdefghijklmnopqrstuvwxyz0123456789";
// 인증 코드의 길이 (6자리)privatestaticfinalintCODE_LENGTH=6;
// 보안 강화를 위한 SecureRandom 사용privatestaticfinalSecureRandomRANDOM=newSecureRandom();
/**
* 인증 코드를 생성하는 메소드
*
* @return 생성된 인증 코드 (Ex. wu2mf9)
*/publicstatic String generate() {
StringBuildercode=newStringBuilder(CODE_LENGTH);
// 지정된 길이만큼 랜덤 문자를 선택하여 인증 코드 생성for (inti=0; i < CODE_LENGTH; i++) {
// CHARACTERS에서 랜덤하게 문자를 선택하여 코드에 추가
code.append(CHARACTERS.charAt(RANDOM.nextInt(CHARACTERS.length())));
}
return code.toString(); // 생성된 인증 코드를 문자열로 반환
}
}