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);
    }
}
相关推荐
古城小栈5 分钟前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie909015 分钟前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体115 分钟前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk99815 分钟前
VSC优化算法MATLAB实现
开发语言·算法·matlab
AI小怪兽34 分钟前
基于YOLOv13的汽车零件分割系统(Python源码+数据集+Pyside6界面)
开发语言·python·yolo·无人机
wszy180944 分钟前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
Z1Jxxx1 小时前
加密算法加密算法
开发语言·c++·算法
Eric.Lee20211 小时前
python实现 mp4转gif文件
开发语言·python·手势识别·手势交互·手势建模·xr混合现实
EntyIU1 小时前
python开发中虚拟环境配置
开发语言·python
wszy18091 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos