Java实现手机号和身份证号脱敏工具类

Mysql查询语句进行脱敏处理

java 复制代码
public class IdCardAndPhoneUtils {

    /**
     * 身份证号脱敏:保留前6位和后4位,中间用 * 替代
     * @param idCard 明文身份证号
     * @return 脱敏后的身份证号,如 "110101********2316"
     */
    public static String maskIdCard(String idCard) {
        if (idCard == null || idCard.trim().isEmpty()) {
            return null;
        }
        String cleanId = idCard.trim();
        int len = cleanId.length();

        // 只处理18位身份证(含最后一位可能是X)
        if (len != 18) {
            return cleanId; // 或返回原值/打码全部?根据业务定
        }

        // 校验是否为有效字符(可选)
        if (!cleanId.matches("[0-9]{17}[0-9Xx]")) {
            return cleanId; // 非法格式,原样返回或打码?
        }

        return cleanId.substring(0, 6) + "********" + cleanId.substring(14);
    }
    /**
     * 手机号脱敏:138****1234
     * @param phone 手机号字符串
     * @return 脱敏后的手机号,如 "138****1234"
     */
    public static String maskPhone(String phone) {
        if (phone == null || phone.length() != 11) {
            return phone; // 非11位原样返回(或可抛异常/返回null)
        }
        return phone.substring(0, 3) + "****" + phone.substring(7);
    }
}
相关推荐
cpp_learners21 分钟前
银河麒麟V10+飞腾FT-2000/4处理器+QT源码静态编译5.14.2指南
开发语言·qt
野生技术架构师29 分钟前
1000道互联网大厂Java岗面试原题解析(八股原理+场景题)
java·开发语言·面试
jiankeljx1 小时前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
cyforkk1 小时前
Java 开源项目指南:如何规范地发布首个 GitHub Release
java·开源·github
qqty12171 小时前
Java进阶学习之路
java·开发语言·学习
是苏浙1 小时前
初识集合框架
java·数据结构
Zzxy1 小时前
Spring Boot 参数校验
java·spring boot
gCode Teacher 格码致知1 小时前
Javascript提高:get和post等请求,对于汉字和空格信息进行编码的原则-由Deepseek产生
开发语言·前端·javascript·node.js·jquery
黑眼圈子1 小时前
总结一下用Java做算法的常用类和方法
java·开发语言·算法
码界筑梦坊1 小时前
353-基于Python的大湾区气候数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计