脱敏工具

简介: 提供Java实现的敏感信息脱敏方法,包括身份证、姓名和手机号的脱敏处理,通过正则替换隐藏关键信息,保障数据安全。

身份证脱敏

Java

运行代码复制代码

public static String hideIdNo(String realNo) {

   if (realNo == null) {

       return null;

   }

   String newNo = "";

   if (realNo.length() == 15) {

       newNo = realNo.replaceAll("(\\d{4})\\d{7}(\\d{4})", "$1*******$2");

   }

   if (realNo.length() == 18) {

       newNo = realNo.replaceAll("(\\d{4})\\d{10}(\\d{4})", "$1**********$2");

   }

   return newNo;

}


public static String hideIdNo(String realNo) {

if (realNo == null) {

return null;

}

String newNo = "";

if (realNo.length() == 15) {

newNo = realNo.replaceAll("(\\d{4})\\d{7}(\\d{4})", "$1*******$2");

}

if (realNo.length() == 18) {

newNo = realNo.replaceAll("(\\d{4})\\d{10}(\\d{4})", "$1**********$2");

}

return newNo;

}

姓名脱敏

Java

运行代码复制代码

public static String hideName(String realname) {

   if (realname == null) {

       return null;

   }

   char[] r = realname.toCharArray();

   String name = "";

   if (r.length == 1) {

       name = realname;

   }

   if (r.length == 2) {

       name = realname.replaceFirst(realname.substring(1), "*");

   }

   if (r.length > 2) {

       name = realname.replaceFirst(realname.substring(1, r.length - 1), "*");

   }

   return name;

}



public static String hideName(String realname) {

if (realname == null) {

return null;

}

char[] r = realname.toCharArray();

String name = "";

if (r.length == 1) {

name = realname;

}

if (r.length == 2) {

name = realname.replaceFirst(realname.substring(1), "*");

}

if (r.length > 2) {

name = realname.replaceFirst(realname.substring(1, r.length - 1), "*");

}

return name;

}

手机号脱敏

Java

运行代码复制代码

public static String hidePhone(String realPhone) {

   if (realPhone == null) {

       return null;

   }

   String phoneNumber;

   if (realPhone.length() == 11) {

       phoneNumber = realPhone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");

   } else {

       phoneNumber = realPhone;

   }

   return phoneNumber;

}


public static String hidePhone(String realPhone) {

if (realPhone == null) {

return null;

}

String phoneNumber;

if (realPhone.length() == 11) {

phoneNumber = realPhone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");

} else {

phoneNumber = realPhone;

}

return phoneNumber;

}


相关文章
|
25天前
|
缓存
QLExpress使用及源码分析
本文介绍基于QLExpress的规则引擎实现方案,涵盖实体构建、接口定义与脚本编写。通过@QLAlias注解映射字段别名,结合YAML配置规则表达式,实现逻辑解耦。运行时动态解析AST语法树,支持汉化变量与上下文绑定,并提供缓存与延迟执行机制,提升性能与灵活性。
52 0
QLExpress使用及源码分析
|
25天前
|
存储 Java
StringUtil
Java中字符串最大长度受限于虚拟机规范,字符串字面量在class文件中存储时最大为65534,超长需分段处理。本文介绍通过StringBuilder分组拼接解决超长字符串接收问题的方法。
30 0
|
25天前
|
Dubbo JavaScript 关系型数据库
Soul网关接入与验证
本章节基于前两章内容,引入Soul网关,重点讲解Provider与Consumer应用如何接入Soul。通过添加@SoulSpringMvcClient和@SoulDubboClient注解、配置application.yml,完成服务注册。需启动zookeeper、MySQL、soul-admin、soul-bootstrap及对应服务,验证通过本地及网关访问接口是否正常,确保divide和zk插件已启用,实现HTTP与Dubbo服务的路由与调用。
25 0
|
25天前
|
Dubbo Java 应用服务中间件
搭建dubbo-zk应用
本文介绍基于SpringBoot 2.2.2与Dubbo 2.0.0的分布式服务搭建,集成ZooKeeper作为注册中心,JDK 1.8环境。涵盖父工程创建、API模块定义、Provider服务提供与Consumer消费全流程,并附配置及验证步骤,助力快速掌握Dubbo微服务通信核心。
21 0
|
25天前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍使用Arthas排查Java应用CPU占用过高问题的完整流程,涵盖线程分析、阻塞定位、watch命令追踪异常、jad反编译实现热更新及火焰图分析,实现无需重启应用的高效故障排查与代码修复。
45 0
|
25天前
|
安全 Java 网络安全
HTTP工具
本文介绍了Java中通过HttpClient发送HTTP/HTTPS的GET和POST请求,并在请求头中添加AppKey和Secret的方法,包含设置超时参数、SSL安全连接及资源释放的完整实现,适用于安全通信场景。
60 0
|
25天前
|
Dubbo 应用服务中间件
zookeeper创建节点
本文通过Dubbo源码解析,深入讲解服务提供者失效踢出的实现原理,结合ZooKeeper的临时节点机制,揭示其与客户端会话绑定的生命周期特性,并以分布式协调场景为例,阐明该设计在实际应用中的价值。
21 0
|
26天前
|
Java 数据库 微服务
微服务服务注册与发现
本课程以黑马商城项目为案例,深入讲解单体架构与微服务架构的优缺点,学习分布式、云原生架构设计,掌握Spring Cloud Alibaba微服务开发,涵盖服务拆分、Nacos注册发现、OpenFeign远程调用等核心技术。
30 0
|
数据采集 存储
4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频
本文介绍了如何使用SwiftSoup库和爬虫代理技术抓取网站视频资源。通过安装SwiftSoup、获取HTML内容、解析HTML以提取视频链接,以及设置爬虫代理来绕过访问限制,可以实现高效、灵活的视频资源获取。示例代码展示了一个完整的过程,包括下载并存储视频文件到设备。结合这两种技术,可以有效应对网站访问挑战,方便地获取互联网视频资源。
815 3
4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频