반응형
개인정보 마스킹
보안이 중요시 되기 때문에 이름, 계좌번호, 전화번호 등등의 개인정보에 마스킹은 필수가 되어가고 있다.
성명 마스킹
성명의 맨 앞과 맨 뒤 1자리씩 제외하고 나머지는 *로 치환된다.
이름이 외자인 경우에 성은 노출이 되고 이름은 *로 치환된다.
성이 2자인 경우에는 성과 이름 구분없이 성명의 맨 앞과 맨 뒤를 제외한 나머지가 *로 치환된다.
예시) 선우길동 → 선**동
성만 입력 또는 이름이 외자인데 이름만 입력하여 이름값이 1자리수라면 해당 이름이 그대로 노출된다.
function maskName(name) {
if (name.length === 1) {
return name;
} else if (name.length === 2) {
return name.slice(0, 1) + '*';
} else {
return name.slice(0, 1) + '*'.repeat(name.length - 2) + name.slice(-1)
}
}
maskName('홍') // 홍
maskName('홍길') // 홍*
maskName('홍길동') // 홍*동
maskName('선우길동') // 선**동
전화번호 마스킹
전화번호는 11자리의 숫자로만 존재해야 한다.
가운데 4자리를 *로 치환한다.
function maskCellPhone(phoneNumber) {
// 휴대폰 번호가 11자리인지 확인
if (phoneNumber.length !== 11) {
console.error("휴대폰 번호는 11자리여야 합니다.");
return phoneNumber;
}
// 가운데 4자리를 '*'로 대체
var maskedNumber = phoneNumber.substring(0, 3) + '****' + phoneNumber.substring(7);
return maskedNumber;
}
maskCellPhone('01012345678') // 010****5678
// 전화번호에 하이픈이 있는경우 아래 함수를 이용하여 하이픈 제거 후 마스킹 적용
maskCellPhone(convertToNumer('010-1234-5678')) // 010****5678
전화번호 하이픈 제거
만약 전화번호에 하이픈('-')이 있다면 아래 함수를 통해 하이픈을 제거하여 사용 할 수 있다.
function convertToNumer(phoneNumber) {
// '-' 제거
var numericNumber = phoneNumber.replace(/-/g, '');
return numericNumber;
}
convertToNumer('010-1234-5678') // 01012345678
계좌번호 마스킹
계좌번호 앞 3자리와 뒤 3자리를 제외한 나머지 숫자를 '*'로 치환된다.
function maskAccountNumber(accountNumber) {
const maskedNumber = accountNumber.slice(0, 3) + '*'.repeat(accountNumber.length - 6) + accountNumber.slice(-3);
return maskedNumber;
}
maskAccountNumber('234567040975542') // 234*********542
반응형
'PHP∵SCRIPT' 카테고리의 다른 글
undefined index 오류방지 병합 연산자 사용 (0) | 2024.10.18 |
---|---|
PHP 기초 Warning: Undefined array key "test" 경고 (0) | 2024.10.17 |
[PHP] 시간 표시하기 (date) (1) | 2024.09.25 |
PHP의 php.ini 파일에서 설정할 수 있는 주요 항목들을 카테고리별로 정리 (2) | 2024.09.14 |
JavaScript :: return vs return true vs return false 차이 (0) | 2023.12.24 |
PHP 현재 페이지의 도메인명이나 url등의 정보 추출하기 (0) | 2023.12.17 |
PHP - 특정 태그 및 문자열 추출, 제거 (0) | 2023.12.17 |
Var, Let, Const의 차이점은? (0) | 2023.12.12 |
댓글