2018. 3. 2. 11:21ㆍlanguage/java
java 비밀번호 정규식 특수문자, 영문, 숫자를 혼합하여 작성하기
java 에서 정규식을 사용하기 위해서는 Pattern 클래스와 Matcher 클래스를 사용해야한다.
보통 비밀번호를 검사할때 특수문자 포함인지, 영문자, 소문자 포함인지 패턴을 검사한다.
이번 포스팅에서는 java 정규식과 String 클래스를 활용하여 다음과 같은 패턴을 검사하는 방법을 설명한다.
1. 영문(대소문자 구분), 숫자, 특수문자 조합
2. 9~12자리 사이 문자
3. 같은 문자 4개 이상 사용 불가
4. 비밀번호에 ID 포함 불가
5. 공백문자 사용 불가
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
String userId = "아이디";
String password = "비밀번호";
String pwPattern = "^(?=.*\\d)(?=.*[~`!@#$%\\^&*()-])(?=.*[a-z])(?=.*[A-Z]).{9,12}$";
Matcher matcher = Pattern.compile(pwPattern).matcher(password);
pwPattern = "(.)\\1\\1\\1";
Matcher matcher2 = Pattern.compile(pwPattern).matcher(password);
if(!matcher.matches()){
}
if(matcher2.find()){
}
if(password.contains(userId)){
}
if(password.contains(" ")){
} |
cs |
1# : 아이디
2# : 비밀번호
4# : 정규식 (영문(대소문자 구분), 숫자, 특수문자 조합, 9~12자리)
5# : Pattern 클래스의 compile(), matcher() 함수를 활용하여 Matcher 클래스 생성
7# : 정규식 (같은 문자 4개 이상 사용 불가)
8# : Pattern 클래스의 compile(), matcher() 함수를 활용하여 Matcher 클래스 생성
10# : Matcher 클래스의 matches() 함수를 활용하여 체크, true 일 경우 정규식을 만족함
14# : Matcher 클래스의 find() 함수를 활용하여 체크, true 일 경우 정규식을 만족함
18# : String 클래스의 contains() 함수를 활용하여 Id가 비밀번호 문자열에 있는지 체크함
22# : String 클래스의 contains() 함수를 활용하여 공백문자가 비밀번호 문자열에 있는지 체크함
위 소스로 기본적인 비밀번호 체크가 가능하다.
'language > java' 카테고리의 다른 글
java 특정 문자열 개수 구하기 (0) | 2019.05.08 |
---|---|
java 초간단 동적 jdbc 연결 (0) | 2019.04.02 |
java 리눅스 윈도우 명령어 실행 / command line executor / cmd (2) | 2018.05.11 |
Java 정규식 테스트 사이트 (0) | 2018.03.02 |
java 날짜 체크하기 (0) | 2018.02.23 |
JAVA BigDecimal 사칙연산(더하기, 빼기, 나누기, 곱하기), 비교 compareTo, 소수점 처리 (올림, 버림, 반올림) (0) | 2017.11.16 |
Java bean to map, vo to map, 객체를 Map으로 변환 (5) | 2017.09.29 |
Java HttpUrlConnection 으로 통신하기 / 파일 전송 및 수신 (0) | 2017.09.28 |
Java 파일을 바이너리 스트링으로, 바이너리 스트링을 파일로 변환 / 파일 전송 (2) | 2017.09.28 |
JAVA List VO 정렬 Collections Sort Comparator 사용하기 (0) | 2017.09.04 |