반응형
아래 소스코드는 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>
반응형
'개발이야기 > 자바스크립트' 카테고리의 다른 글
[자바스크립트] 새로고침, 새 창 막기 (키보드 이벤트) (0) | 2024.02.15 |
---|---|
[자바스크립트] UTC와 KST로 날짜, 시간대 변환하기 (1) | 2024.02.13 |
[자바스크립트] 화면 확대 축소 하기 (이미지 확대/축소) (1) | 2023.11.24 |
[자바스크립트] Google Charts(구글 차트) 사용법, 예제, 차트 그리기 (0) | 2023.10.31 |
[자바스크립트] C3.js chart 사용법, 예제, 차트 그리기 (막대, 선, 원, 도넛, 파이 그래프) (0) | 2023.10.27 |
댓글