티스토리 뷰

정규식 패턴을 이용한 주민등록번호 마스킹 처리

앞 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******

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday