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位身份证
相关推荐
nJI74egg1几秒前
JavaEE初阶---《JUC 并发编程完全指南:组件用法、原理剖析与面试应答》
java·面试·java-ee
刮风那天8 分钟前
Android AMS创建进程不用Binder而用Socket?
android·java·binder
程序员老邢14 分钟前
【技术底稿 37】Spring Boot 3.x 自动装配 “死锁” 排查:3 个注解实现条件化装配与 Mock 兜底
java·spring boot·后端·自动装配·rag·技术底稿
学习,学习,在学习15 分钟前
Qt工控仪器程序框架设计详解(工控多仪器控制版本)
开发语言·c++·qt
三品吉他手会点灯21 分钟前
C语言学习笔记 - 35.数据类型 - printf函数的非输出控制符与格式优化
c语言·开发语言·笔记·学习
用户4343092416921 分钟前
Day29:图片上传 + 存数据库(Multer + MySQL)
数据库·后端
码路高手26 分钟前
Hermes Agent 整体了解
后端·架构
日月云棠29 分钟前
JAVA数据结构与算法 - 基础:链表
java·后端
日月云棠33 分钟前
JAVA数据结构与算法 - 基础:栈 (Stack) 深度解析
java·后端
xiguolangzi36 分钟前
java使用Map映射遍历方法
java·后端