개발이야기/자바스크립트

[자바스크립트] 개인정보 마스킹하기 (이름, 휴대번호, 이메일, 주소, 계좌번호, 은행, 연도, 월)

후린개발자 2024. 6. 10.
반응형

아래 소스코드는 JavaScript에서 개인 정보를 마스킹하고 원본 데이터와 마스킹된 데이터를 콘솔에 출력하는 예제입니다.
데이터 유형에 대해 마스킹을 수행하는 함수를 정의하고, 데이터 형식에 따라 부분적으로 정보를 숨기도록 하였습니다.
 
 

마스킹 함수

-maskName: 이름의 첫 글자만 남기고 나머지를 *로 대체합니다.
-maskPhoneNumber: 전화번호의 중간 4자리를 ****로 대체합니다.
-maskEmail: 이메일 주소의 사용자 부분을 마스킹합니다.
-maskAddress: 주소의 첫 단어를 제외하고 나머지를 *로 대체합니다.
-maskBankName: 은행 이름의 첫 글자만 남기고 나머지를 *로 대체합니다.
-maskAccountNumber: 계좌 번호의 중간 8자리를 ****-****로 대체합니다.
-maskYear: 연도의 마지막 두 자리를 **로 대체합니다.
-maskMonth: 월을 **로 대체합니다.
 
 

<script>
// 데이터 예제
const name = "홍길동";
const phoneNumber = "010-1234-5678";
const email = "HongGilDong@example.com";
const address = "서울특별시 중구 세종대로 110 서울특별시청";
const bankName = "국민은행";
const accountNumber = "1234-5678-9012-3456";
const year = "2024";
const month = "06";

// 마스킹 함수들
function maskName(name) {
    return name.charAt(0) + "*".repeat(name.length - 1);
}

function maskPhoneNumber(phoneNumber) {
    return phoneNumber.replace(/(\d{3})-(\d{4})-(\d{4})/, "$1-****-$3");
}

function maskEmail(email) {
    const [user, domain] = email.split("@");
    return user.charAt(0) + "*".repeat(user.length - 1) + "@" + domain;
}

function maskAddress(address) {
    const parts = address.split(" ");
    if (parts.length > 1) {
        return parts[0] + " " + "*".repeat(parts.slice(1).join(" ").length);
    } else {
        return "*".repeat(address.length);
    }
}

function maskBankName(bankName) {
    return bankName.charAt(0) + "*".repeat(bankName.length - 1);
}

function maskAccountNumber(accountNumber) {
    return accountNumber.replace(/(\d{4})-(\d{4})-(\d{4})-(\d{4})/, "$1-****-****-$4");
}

function maskYear(year) {
    return year.substring(0, 2) + "**";
}

function maskMonth(month) {
    return "**";
}

// 마스킹된 결과
const maskedName = maskName(name);
const maskedPhoneNumber = maskPhoneNumber(phoneNumber);
const maskedEmail = maskEmail(email);
const maskedAddress = maskAddress(address);
const maskedBankName = maskBankName(bankName);
const maskedAccountNumber = maskAccountNumber(accountNumber);
const maskedYear = maskYear(year);
const maskedMonth = maskMonth(month);

// 콘솔 출력
console.log("Original Name:", name);
console.log("Masked Name:", maskedName);

console.log("Original Phone Number:", phoneNumber);
console.log("Masked Phone Number:", maskedPhoneNumber);

console.log("Original Email:", email);
console.log("Masked Email:", maskedEmail);

console.log("Original Address:", address);
console.log("Masked Address:", maskedAddress);

console.log("Original Bank Name:", bankName);
console.log("Masked Bank Name:", maskedBankName);

console.log("Original Account Number:", accountNumber);
console.log("Masked Account Number:", maskedAccountNumber);

console.log("Original Year:", year);
console.log("Masked Year:", maskedYear);

console.log("Original Month:", month);
console.log("Masked Month:", maskedMonth);
</script>

 
 


 

console.log 출력 결과
반응형

댓글

💲 추천 글