Java

[Java]이름 마스킹 처리

dev.yong 2018. 2. 8. 00:05

최근 개인정보 보호의 중요성이 높아지면서 개발 할 때도 보안적으로 신경써야 할 부분이 많다. 서비스에 등록된 고객 또는 내부직원 리스트를 나열 할 때도 개인정보는 식별되기 어렵도록 마스킹 처리를 하게 되는데 이번 포스팅에서는 Java단에서 마스킹 하는법에 대해  알아보도록 하자


DB에서 이름을 select할 때 쿼리문에서 마스킹 하는 방법이 있지만 개인정보는 DB에 저장할 때 AES등의 암호화 알고리즘을 사용하여 암호화 후 저장하기 때문에 암호화된 데이터를 가져온 후 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
/**
 * 이름 마스킹 처리(성을 제외한 이름 마스킹 처리)
 * @author 20151047
 * @param name
 * @return string
 */
public static String maskingName(String name){
    String maskedName = "";    // 마스킹 이름
    String firstName = "";    // 성
    String lastName = "";    // 이름
    int lastNameStartPoint;    // 이름 시작 포인터
 
    if(!name.equals(""|| name != null){
        if(name.length() > 1){
            firstName = name.substring(01);
            lastNameStartPoint = name.indexOf(firstName);
            lastName = name.substring(lastNameStartPoint + 1, name.length());
 
            String makers = "";
 
            for(int i = 0; i < lastName.length(); i++){
                makers += "*";
            }
 
            lastName = lastName.replace(lastName, makers);
            maskedName = firstName + lastName;
        }else{
            maskedName = "*";
        }
    }
 
    return maskedName;
}
cs