728x90

보안 목적상 코드를 마스킹처리해야 한다. 일부는 정규표현식을 사용했다.

<?php
// ######### 마스킹 처리 ###########
function phoneNoMasking($str){ // 휴대폰번호 마스킹 처리
    $str = str_replace('-','',$str);
    $strlen = mb_strlen($str'utf-8');
    $mValue = "";
 
    switch($strlen){
        case 10:
            $mValue = mb_substr($str,0,3)."-".mb_substr($str,3,1)."**"."-*".mb_substr($str,7,3);;
            break;
        case 11:
            $mValue = mb_substr($str,0,3)."-".mb_substr($str,3,2)."**"."-*".mb_substr($str,8,3);
            break;
        case 0:
            $mValue ='';
            break;
    }
    return $mValue;
}
 
function IDMasking($str){ // id 마스킹
    $mValue = preg_replace('/.{3}$/''***'$str);
    return $mValue;
}
 
function EmailMasking($str){ // 수정 보완 필요
    //$str = preg_replace('/(?:^|@).\K|\.[^@]*$(*SKIP)(*F)|.(?=.*?\.)/', '*', $str);
    $pattern = '/(\w+)(\w{3})(@.{1})(?=.*?\.)(.+)/i';
    $replace = '\1***\3*\5';
    //$str = preg_replace('/(\w+)(\w{3})@(\w+)/i','\1***@\3',$str);
    $str = preg_replace('/(\w+)(\w{3})(@.{1})([\w*?]+)(.+)/i','\1***\3*\5',$str);
    return $str;
}
 
function IPaddressMasking($str){
    // ? : 0 ~ 1, + : 1개 이상
    $str = preg_replace('/(\d+)([\.]\d+[\.])(\d+)([\.]\d+)/i','***\2***\4',$str);
    return $str;
}
 
function DeviceIDMasking($str){ // 휴대폰 기기번호 전부 마스킹 처리
    $mValue = preg_replace('/(.*?)/''*'$str);
    return $mValue;
}
 
function letterMasking($str){ // 문자열 마스킹 : 홍*동
    $str = str_replace('-','',$str);
    $strlen = mb_strlen($str'utf-8');
    $mValue = "";
 
    switch($strlen){
        case 2:
            $mValue = mb_strcut($str03"UTF-8").'*';
            break;
        case 3:
            $mValue = mb_strcut($str03"UTF-8").'*'.mb_strcut($str811"UTF-8");
            break;
        case 4:
            $mValue = mb_strcut($str03"UTF-8").'**'.mb_strcut($str1215"UTF-8");
            break;
        default:
            $mValue = mb_strcut($str03"UTF-8").'**'.mb_strcut($str1215"UTF-8");
            break;
    }
    return $mValue;
}
 
?>

 

728x90
블로그 이미지

Link2Me

,