일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- intellij 연동
- TortoiseSVN
- SSL
- Checkout
- Android Studio
- commit
- terms
- VCS
- Subversion
- Branch
- 문법
- 상속
- 생성자
- gradle
- IntelliJ IDEA Community
- git
- syntax
- constructor
- install
- svn
- error
- 자바
- 특징
- cherrypick
- java
- sourcetree
- Class
- Android
- 캡슐화
- IntelliJ
Archives
- Today
- Total
Jay's Developer Note
[JAVA] 임시 비밀번호 생성(feat. RandomStringUtils) 본문
728x90
임시 비밀번호 생성
라이브러리를 이용해 임시 비밀번호를 생성했다.
라이브러리는 apache 에서 제공하는 Apache Common Lang 이다.
라이브러리 추가
Gradle
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'
Maven
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
작성일 기준 최신 버전이 3.12.0 이었다.
더 자세한 내용과 다른 버전을 사용하려면 여기 로 가서 확인하면 된다.
사용방법
// 완전 랜덤으로 이뤄진 8개 문자열 반환
RandomStringUtils.random(8);
// 랜덤 알파벳으로만 이뤄진 8개 문자열 반환
RandomStringUtils.randomAlphabetic(8);
// 랜덤 숫자로만 이뤄진 8개 문자열 반환
RandomStringUtils.randomNumeric(8);
// 랜덤 알파벳+숫자로만 이뤄진 8개 문자열 반환
RandomStringUtils.randomAlphanumeric(8);
// 랜덤 Ascii 값으로만 이뤄진 8개 문자열 반환
RandomStringUtils.randomAscii(8);
실행결과
random : 뽳𬘣𞠔𢺃賗
randomAlphabetic : BQDvWhjK
randomNumeric : 63726331
randomAlphanumeric : ncmI2fVL
randomAscii : 'P~sJQ2R
추가내용
random() 메소드를 제외한 각 메소드들은 1개의 오버로딩을 가지고 있다.
// minLengthInclusive : 포함할 최소 길이
// maxLengthExclusive : 제외할 최대 길이
RandomStringUtils.randomAlphabetic(int minLengthInclusive, int maxLengthExclusive);
RandomStringUtils.randomNumeric(int minLengthInclusive, int maxLengthExclusive);
RandomStringUtils.randomAlphanumeric(int minLengthInclusive, int maxLengthExclusive);
RandomStringUtils.randomAscii(int minLengthInclusive, int maxLengthExclusive);
// 최소 1개 최대 (8-1)개의 랜덤 문자열 생성
RandomStringUtils.randomAlphabetic(1, 8);
RandomStringUtils.randomNumeric(1, 8);
RandomStringUtils.randomAlphanumeric(1, 8);
RandomStringUtils.randomAscii(1, 8);
실행결과
randomAlphabetic : Nz
randomNumeric : 0908
randomAlphanumeric : v
randomAscii : 2
random() 메소드는 오버로딩이 여러 개가 있다.
// count 는 최대 문자열 길이
// letters = true > 랜덤 문자열에 글자 포함 여부
// numbers = true > 랜덤 문자열에 숫자 포함 여부
random(int count, boolean letters, boolean numbers);
// count : 최대 문자열 길이
// start : 랜덤으로 생성할 문자열 시작 위치(Ascii 값)
// end : 랜덤으로 생성할 문자열 종료 위치(Ascii 값) ※ 포함 안 함
// letters = true > 랜덤 문자열에 글자 포함 여부
// numbers = true > 랜덤 문자열에 숫자 포함 여부
random(int count, int start, int end, boolean letters, boolean numbers);
// count : 최대 문자열 길이
// start : 랜덤으로 생성할 문자열 시작 위치(Ascii 값)
// end : 랜덤으로 생성할 문자열 종료 위치(Ascii 값) ※ 포함 안 함
// letters = true > 랜덤 문자열에 글자 포함 여부
// numbers = true > 랜덤 문자열에 숫자 포함 여부
// chars : 랜덤 문자열 생성 시 기준 문자 배열
random(int count, int start, int end, boolean letters, boolean numbers, char... chars);
// count : 최대 문자열 길이
// start : 랜덤으로 생성할 문자열 시작 위치(Ascii 값)
// end : 랜덤으로 생성할 문자열 종료 위치(Ascii 값) ※ 포함 안 함
// letters = true > 랜덤 문자열에 글자 포함 여부
// numbers = true > 랜덤 문자열에 숫자 포함 여부
// chars : 랜덤 문자열 생성 시 기준 문자 배열
// random : Random 함수
random(int count, int start, int end, boolean letters, boolean numbers, char[] chars, Random random);
// count : 최대 문자열 길이
// chars : 랜덤 문자열 생성 시 기준 문자열
random(int count, @Nullable String chars);
// count : 최대 문자열 길이
// chars : 랜덤 문자열 생성 시 기준 문자 배열
random(int count, @Nullable char... chars);
유의해야 할 점은 start 와 end 가 Ascii 값이라는 것이다.
그래서 letters 가 true 이면 end 가 최소 A 의 Ascii 값인 65 보다 큰 값이어야 한다.
그리고 numbers 가 true 이면 end 가 최소 0의 Ascii 값인 48 보다 큰 값이어야 한다.
표현 : Ascii 값 > [0 : 48 / 9 : 57], [A : 65 / Z : 90], [a : 97 / z : 122]
Parameter end (4) must be greater then (48) for generating digits or greater then (65) for generating letters.
그렇지 않으면 위와 같은 에러를 만나게 된다.
728x90
'JAVA' 카테고리의 다른 글
[JAVA] 임시 비밀번호 생성 직접 구현해보기 (0) | 2022.05.25 |
---|---|
[JAVA] Class - 5(상속) (0) | 2022.04.02 |
[JAVA] 캡슐화 & 은닉화 (0) | 2022.03.16 |
[JAVA] Class - 4(메소드) (0) | 2022.03.13 |
[JAVA] Class - 3(멤버 변수) (0) | 2022.03.11 |