java 비밀번호 정규식 (특수문자, 영문, 숫자)

2018. 3. 2. 11:21language/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() 함수를 활용하여 공백문자가 비밀번호 문자열에 있는지 체크함

 

위 소스로 기본적인 비밀번호 체크가 가능하다.