Java 数据处理 - 身份证号和手机号脱敏

Java 数据处理 - 身份证号和手机号脱敏
身份证号和手机号脱敏1、基本介绍身份证号脱敏保留前 6 位和后 4 位中间用*号代替# 例如 110105********1234手机号脱敏保留前 3 位和后 4 位中间 4 位用*号代替# 例如 138****56782、具体实现身份证号脱敏publicstaticStringdesensitizeIdCard(StringidCard){if(idCardnull||idCard.isEmpty()){returnidCard;}// 去除空格idCardidCard.trim();intlengthidCard.length();// 长度小于等于 10 位时直接返回原值实际身份证号至少 15 位if(length10){returnidCard;}StringprefixidCard.substring(0,6);StringsuffixidCard.substring(length-4);intstarCountlength-10;returnprefix*.repeat(starCount)suffix;}手机号脱敏publicstaticStringdesensitizePhone(Stringphone){if(phonenull||phone.isEmpty()){returnphone;}phonephone.trim();intlengthphone.length();// 长度小于 7 位时直接返回原值if(length7){returnphone;}Stringprefixphone.substring(0,3);Stringsuffixphone.substring(length-4);intstarCountlength-7;returnprefix*.repeat(starCount)suffix;}3、具体实现兼容 Java 11 以下版本privatestaticStringrepeatChar(charc,intcount){if(count0){return;}StringBuildersbnewStringBuilder(count);for(inti0;icount;i){sb.append(c);}returnsb.toString();}身份证号脱敏publicstaticStringdesensitizeIdCard(StringidCard){if(idCardnull||idCard.isEmpty()){returnidCard;}// 去除空格idCardidCard.trim();intlengthidCard.length();// 长度小于等于 10 位时直接返回原值实际身份证号至少 15 位if(length10){returnidCard;}StringprefixidCard.substring(0,6);StringsuffixidCard.substring(length-4);intstarCountlength-10;returnprefixrepeatChar(*,starCount)suffix;}手机号脱敏publicstaticStringdesensitizePhone(Stringphone){if(phonenull||phone.isEmpty()){returnphone;}phonephone.trim();intlengthphone.length();// 长度小于 7 位时直接返回原值if(length7){returnphone;}Stringprefixphone.substring(0,3);Stringsuffixphone.substring(length-4);intstarCountlength-7;returnprefixrepeatChar(*,starCount)suffix;}

最新新闻

日新闻

周新闻

月新闻