Java

[Java] 휴대폰 번호 마스킹 처리

dev.yong 2018. 2. 22. 21:54

요새 보안이슈 때문에 회사 시스템을 모두 수정하고 있다.

개인정보란 개인정보는 모두 마스킹을 하고 있다.


DB에 암호화 되어 있는 휴대폰 정보를 평문으로 복호화 한 후 뷰페이지에 뿌리기 전에 휴대폰 번호를 마스킹 처리 해야 한다.


프로젝트의 Util.java에 넣어서 사용하면 좋을듯 하다.


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
32
33
34
35
36
37
/**
 * 휴대폰 번호 마스킹(010****1234 / 011***1234)
 * @param phoneNumber
 * @return
 */
public static String maskPhoneNumber(String phoneNumber){
      
      String maskedPhoneNum = phoneNumber;
      // 공백제거
      maskedPhoneNum = maskedPhoneNum.replaceAll(" """);
      
      // '-'가 포함되어있으면 모두 삭제
      if(maskedPhoneNum.contains("-")){
            maskedPhoneNum = maskedPhoneNum.replaceAll("[^0-9]""");
      }
      
      // 11자리 또는 10자리가 되지 않으면 공백 ""
      if(maskedPhoneNum.length() > 11 || maskedPhoneNum.length() < 10){
            maskedPhoneNum = "";
      }else{
            // 11자리 휴대폰 번호 마스킹 처리
            if(maskedPhoneNum.length() == 11){
                  String num1 = maskedPhoneNum.substring(03);
                  String num3 = maskedPhoneNum.substring(7);
                  
                  maskedPhoneNum = num1 + "****" + num3;
            // 10자리 휴대폰 번호 마스킹 처리
            }else if(maskedPhoneNum.length() == 10){
                  String num1 = maskedPhoneNum.substring(03);
                  String num3 = maskedPhoneNum.substring(6);
                  maskedPhoneNum = num1 + "***" + num3;
            }
      }
      
      return maskedPhoneNum;
}
 
cs