java处理中文脱敏

方法一,简单的,不计算文字长度去设置脱敏

java 复制代码
public static String dataDesensitization1(String content){
        String regex = "(.{2}).*(.{2})";
        return ReUtil.replaceAll(content, regex, matcher -> {
            try {
                if (CharSequenceUtil.isBlank(matcher.group())) {
                    return "";
                }
                String start = matcher.group(1);
                String end = matcher.group(2);
                return start + "****" + end;
            } catch (Exception e) {
                return "";
            }
        });
    }

方法二,计算长度,取头尾三个文字,其余为**

java 复制代码
return ReUtil.replaceAll(content, "(?<=.{2}).*(?=.{2})", matcher -> {
        try {
            if (CharSequenceUtil.isBlank(matcher.group())) {
                return "";
            }
            String middle = matcher.group();
            String desensitizedMiddle = ""; // 脱敏后的中间部分
            for (int i = 0; i < middle.length(); i++) {
                // 遍历中间部分的每个字符,只保留第一个和最后一个字符,其他用 "*" 代替
                if (i == 0 || i == middle.length() - 1) {
                    desensitizedMiddle += middle.charAt(i);
                } else {
                    desensitizedMiddle += "*";
                }
            }
            return desensitizedMiddle;
        } catch (Exception e) {
            return "";
        }
    });

一些其他的正则

java 复制代码
PHONE = "((13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8})";
java 复制代码
ID_CARD_FIFTEEN = "([1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}[0-9Xx])";//15位身份证
java 复制代码
ID_CARD_EIGHTEEN = "([1-9]\\d{5}\\d{4}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx])";//18位身份证
相关推荐
贫民窟的勇敢爷们4 分钟前
Spring Boot+Vue电商系统开发实战:架构设计与核心实现
vue.js·spring boot·后端
Brilliantwxx16 分钟前
【C++】认识vector(概念+题目OJ)
开发语言·c++·笔记·算法
逻辑驱动的ken18 分钟前
Java高频面试考点场景题22
java·开发语言·jvm·面试·职场和发展·求职招聘·春招
枫叶丹422 分钟前
【HarmonyOS 6.0】Core File Kit:端云文件版本管理能力解析与实践
开发语言·华为·harmonyos
小则又沐风a24 分钟前
list模拟实现
java·服务器·list
初心未改HD25 分钟前
Go 文件与 I/O 操作完全指南
开发语言·golang
上弦月-编程27 分钟前
C语言链表详解,新手也能看懂! ——从入门到精通的完整教程
java·c语言·c++
szial29 分钟前
uv 实战指南:用一个工具重塑 Python 开发工作流
开发语言·python·uv
ffqws_40 分钟前
Spring Boot 配置读取全解析:从 application.yml 到 Java 对象的完整链路
java·数据库·spring boot
wjs202441 分钟前
HTML 段落
开发语言