지식정보
[JAVA] 정규식 주민등록번호 마스킹처리
onggun
2019. 7. 16. 10:28
정규식 패턴을 이용한 주민등록번호 마스킹 처리
앞 7자리를 제외한 나머지 문자를 "*"로 치환한다.
private final static Pattern ssn_pattern = Pattern.compile("^(\\d{6}\\D?\\d{1})(\\d{6})$");
public static String maskSSN(String ssn) {
Matcher matcher = ssn_pattern.matcher(ssn);
if(matcher.find()) {
return new StringBuffer (matcher.group(1)).append("******").toString();
}
return ssn;
}
다른 방법으로 무조건 마지막 6자리를 *표로 치환하는 방법
private final static String last_6_char_pattern = "(.{6}$)";
public static String maskSSN(String ssn) {
if(ssn == null || "".equals(ssn) || ssn.length() < 6)
return ssn;
return ssn.replaceAll(last_6_char_pattern, "******");
}
테스트 결과
주민번호 : 1234567890123 ==> 1234567******
주민번호 : 123456-7890123 ==> 123456-7******