Java 数据处理 - 身份证号和手机号脱敏
2026/7/21 21:35:24 网站建设 项目流程

身份证号和手机号脱敏

1、基本介绍
  1. 身份证号脱敏:保留前 6 位和后 4 位,中间用*号代替
# 例如 110105********1234
  1. 手机号脱敏:保留前 3 位和后 4 位,中间 4 位用*号代替
# 例如 138****5678
2、具体实现
  1. 身份证号脱敏
publicstaticStringdesensitizeIdCard(StringidCard){if(idCard==null||idCard.isEmpty()){returnidCard;}// 去除空格idCard=idCard.trim();intlength=idCard.length();// 长度小于等于 10 位时,直接返回原值,实际身份证号至少 15 位if(length<=10){returnidCard;}Stringprefix=idCard.substring(0,6);Stringsuffix=idCard.substring(length-4);intstarCount=length-10;returnprefix+"*".repeat(starCount)+suffix;}
  1. 手机号脱敏
publicstaticStringdesensitizePhone(Stringphone){if(phone==null||phone.isEmpty()){returnphone;}phone=phone.trim();intlength=phone.length();// 长度小于 7 位时,直接返回原值if(length<7){returnphone;}Stringprefix=phone.substring(0,3);Stringsuffix=phone.substring(length-4);intstarCount=length-7;returnprefix+"*".repeat(starCount)+suffix;}
3、具体实现(兼容 Java 11 以下版本)
privatestaticStringrepeatChar(charc,intcount){if(count<=0){return"";}StringBuildersb=newStringBuilder(count);for(inti=0;i<count;i++){sb.append(c);}returnsb.toString();}
  1. 身份证号脱敏
publicstaticStringdesensitizeIdCard(StringidCard){if(idCard==null||idCard.isEmpty()){returnidCard;}// 去除空格idCard=idCard.trim();intlength=idCard.length();// 长度小于等于 10 位时,直接返回原值,实际身份证号至少 15 位if(length<=10){returnidCard;}Stringprefix=idCard.substring(0,6);Stringsuffix=idCard.substring(length-4);intstarCount=length-10;returnprefix+repeatChar('*',starCount)+suffix;}
  1. 手机号脱敏
publicstaticStringdesensitizePhone(Stringphone){if(phone==null||phone.isEmpty()){returnphone;}phone=phone.trim();intlength=phone.length();// 长度小于 7 位时,直接返回原值if(length<7){returnphone;}Stringprefix=phone.substring(0,3);Stringsuffix=phone.substring(length-4);intstarCount=length-7;returnprefix+repeatChar('*',starCount)+suffix;}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询