시작하기에 앞서..
원래 이 글은 제 예전 블로그인 티스토리에 올려놓은 글을 참조하여 재 작성한 글입니다.
‘누구나 만들 수 있는 함수 아니야?’
라고 많이들 생각하시겠지만, 운영 하지 않는 전 블로그의 해당 글 조회수는 월 50회가 거뜬히 넘습니다.
이에 검색을 통해 제 새로운 블로그에서도 같은 정보를 얻으실 수 있으면 좋겠다 싶어 글을 옮겨왔습니다.
masking(마스킹) 처리?
마스킹 처리란, 타인이 온전한 데이터를 봐서는 안될때 쉽게 노출되지 않게 하기 위하여
* 과 같은 특수문자를 데이터에 포함하여 노출시켜주는 일종의 보안 처리 방식입니다.
개인정보를 리스트화 하여 노출 시키거나, 본인이 아닌 타인에게 노출될 우려가 있을 시 주로 사용됩니다.
masking 함수
function masking($_type, $_data){ $_data = str_replace('-','',$_data); $strlen = mb_strlen($_data, 'utf-8'); $maskingValue = ""; $useHyphen = "-"; if($_type == 'N'){ switch($strlen){ case 2: $maskingValue = mb_strcut($_data, 0, 3, "UTF-8").'*'; break; case 3: $maskingValue = mb_strcut($_data, 0, 3, "UTF-8").'*'.mb_strcut($_data, 8, 11, "UTF-8"); break; case 4: $maskingValue = mb_strcut($_data, 0, 3, "UTF-8").'**'.mb_strcut($_data, 12, 15, "UTF-8"); break; default: $maskingValue = mb_strcut($_data, 0, 3, "UTF-8").'**'.mb_strcut($_data, 12, 15, "UTF-8"); break; } }else if($_type == 'P'){ switch($strlen){ case 10: $maskingValue = mb_substr($_data, 0, 3)."{$useHyphen}***{$useHyphen}".mb_substr($_data, 6, 4); break; case 11: $maskingValue = mb_substr($_data, 0, 3)."{$useHyphen}****{$useHyphen}".mb_substr($_data, 7, 4); break; default: trigger_error('Not a known format parametter in function', E_USER_NOTICE); break; } }else{ trigger_error('Masking Function Parameter Error', E_USER_NOTICE); } return $maskingValue; }
함수 파라미터 안내
$_type: ‘N’ 또는 ‘P’가 들어갑니다. ‘N’ 은 이름을 마스킹 할때, ‘P’는 연락처를 마스킹 할때 사용됩니다.
$_data: 이 파라미터엔 마스킹 처리가 될 데이터가 들어갑니다.
* $useHyphen 변수를 비우거나 {$useHyphen}을 지우는 방법으로 “01012345678” 과 같은 형식의 값을 받을 수도 있습니다.
사용 예제
– 위 함수를 사용하였을 때 나오는 결과를 아래에 기재하였습니다.
아래와 같은 마스킹 처리 효과를 보고 싶으실 때 위 함수를 사용하시면 좋을 듯 합니다.
echo masking('N', '홍길동');
= 홍*동
echo masking('N', '세바스찬');
= 세**찬
echo masking('P', '010-000-0000');
= 000-***-****
echo masking('P', '010-0000-0000');
= 000-****-****