본문 바로가기
▶ Back-End/Java

문자열 중간 마스킹 처리

by 오늘도 코딩 2021. 4. 22.
728x90
반응형

 

 

▷ Example

- 영어 이름, 이름 길이 상관 없이 사용자 이름 중간 마스킹 처리

 

*개선 2024-11-26

public String midMasking(String userName) {

    // 사용자 이름 길이가 2자 이하인 경우 마스킹을 하지 않음
    if (userName == null || userName.length() <= 2) {
        return userName;
    }

    // 첫 글자 + 중간 글자는 '*'로 마스킹, 마지막 글자
    StringBuilder maskedName = new StringBuilder();
    maskedName.append(userName.charAt(0)); // 첫 번째 글자
    for (int i = 1; i < userName.length() - 1; i++) {
        maskedName.append("*"); // 중간 글자는 '*'로 마스킹
    }
    maskedName.append(userName.charAt(userName.length() - 1)); // 마지막 글자

    return maskedName.toString();
}

// 요청 : userName = 사용자이름
// 결과 : 사***름

 

*개선 전

/** 사용자 이름 마스킹 처리 */
public String midMasking(String userName) {

	// 사용자 이름 첫글자
	String frsName = userName.substring(0,1); 
	
	// 사용자 이름 중간글자
	String midName = userName.substring(1, userName.length()-1); 
	
	// 사용자 이름 중간글자 마스킹
	String cnvMidName = ""; 
	for(int i=0; i< midName.length(); i++){
		cnvMidName += "*"; // 중간 글자 수 만큼 * 표시
	}
	
	// 사용자 이름 마지막 글자
	String lstName = userName.substring(userName.length()-1,userName.length()); 
	
	// 마스킹 완성된 사용자 이름
	String maskingName = frsName + cnvMidName + lstName; 
	
	return maskingName;
}

// 요청 : userName = 사용자이름
// 결과 : 사***름

 

 

728x90
728x90

'▶ Back-End > Java' 카테고리의 다른 글

JSON 응답 필드 Null 값 제외(@JsonInclude)  (0) 2021.04.30
해당 월 말일 산출  (0) 2021.04.23
문자열 n번째 이후 마스킹 처리  (0) 2021.04.22
두 지점간의 거리 계산  (0) 2021.04.16
List<Object> 정렬  (0) 2021.04.16

댓글