java信息脱敏

有一部分敏感信息需要掩码遮盖,像是手机号,密码,都要进行脱敏

private static String maskSensitiveInfo(String value) {
    if (value == null || value.isEmpty()) {
        return value;
    }
    
    // 处理URL中的敏感参数
    String[] sensitiveParams = {"password", "api_key", "token", "credit_card"};
    for (String param : sensitiveParams) {
        if (value.contains(param + "=")) {
            return value.replaceAll(param + "=[^&]*", param + "=*****");   //这里使用了正则表达式
        }
    }
    
    // 处理手机号 (假设格式为11位数字)
    if (value.matches("\\d{11}")) {
        return value.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
    }
    
    // 处理身份证号 (假设15或18位)
    if (value.matches("\\d{15}|\\d{18}")) {
        return value.replaceAll("(\\d{6})\\d+(\\d{4})", "$1********$2");
    }
    
    // 普通字符串掩码
    int length = value.length();                                     //当长度少于6时全部使用掩码
    if (length <= 6) {
        return "******";
    }
    return value.substring(0, 3) + "*****" + value.substring(length - 3);  //只保留前三位和后三位,中间全部用*代替
}
posted @ 2025-05-27 13:00  Huangyien  阅读(82)  评论(0)    收藏  举报