/**
* 脱敏 https://opendocs.alipay.com/common/02kg63 https://developers.weixin.qq.com/miniprogram/dev/framework/security.html#%E4%BF%A1%E6%81%AF%E6%B3%84%E9%9C%B2
* @param $platform int 平台:0微信、1支付宝
* @param $type int 类型:0身份证ID、1手机号、2银行卡号、3个人姓名
* @param $string string 待脱敏字符串
* user Mr.DJ
* des:脱敏封装方法
*/
function getDesensitize($platform,$type,$string){
$arr = ['identity_card'=>0,'phone_number'=>1,'bank_card_number'=>2,'personal_name'=>3];
switch ($arr[$type]){
case 0: //只显示第一位和最后一位,如:3****************1
$strlen = mb_strlen($string, 'utf-8');
$firstStr = mb_substr($string, 0, 1, 'utf-8');
$lastStr = mb_substr($string, 0, 1, 'utf-8');
$string = $firstStr.str_repeat("*", $strlen - mb_strlen($firstStr, 'utf-8') -1) .$lastStr;
break;
case 1: //支付宝只显示前三位和最后两位,如:156******77。
if($platform){
$firstStr = mb_substr($string, 0, 3, 'utf-8');
$string = $firstStr.str_repeat("*", mb_strlen($string, 'utf-8') - 5) . mb_substr($string, -2, 4, 'utf-8');
}else{ //微信只显示前三位和最后两位,如:156******77。手机号位数少于10位时,只显示前两位和后两位,如:12*****89
$strlen = mb_strlen($string, 'utf-8');
$firstStr = mb_substr($string, 0, 3, 'utf-8');
if($strlen < 11){
$firstStr = mb_substr($string, 0, 2, 'utf-8');
$string = $firstStr.str_repeat("*", $strlen - 4) .mb_substr($string, -2, 2, 'utf-8');
}else{
$string = $firstStr.str_repeat("*", mb_strlen($string, 'utf-8') - 5) . mb_substr($string, -2, 2, 'utf-8');
}
}
break;
case 2: //只显示最后4位,如:************1234
$string = str_repeat("*", mb_strlen($string, 'utf-8') - 4) . mb_substr($string, -4, 4, 'utf-8');
break;
case 3: //微信:名字只有两个字,对第一个字打码,如:*三。 多于两个字,只保留第一个和最后一个,其余都打码,如:王*四、欧**五 支付宝:中文姓名只展示最后一个字,前面补充 *
if($platform){
$string = str_repeat("*", mb_strlen($string, 'utf-8') - 1) . mb_substr($string, -1, 1, 'utf-8');
}else{
$strlen = mb_strlen($string, 'utf-8');
$firstStr = mb_substr($string, 0, 1, 'utf-8');
$lastStr = mb_substr($string, -1, 1, 'utf-8');
$string = ($strlen == 2) ? str_repeat('*', mb_strlen($string, 'utf-8') - 1).$lastStr : $firstStr . str_repeat("*", $strlen - 2) . $lastStr;
}
break;
}
return $string;
}
封装微信支付宝脱敏
最新推荐文章于 2023-11-09 10:29:39 发布