脱敏工具

简介: 提供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;

}


相关文章
|
4月前
|
缓存
QLExpress使用及源码分析
本文介绍基于QLExpress的规则引擎实现方案,涵盖实体构建、接口定义与脚本编写。通过@QLAlias注解映射字段别名,结合YAML配置规则表达式,实现逻辑解耦。运行时动态解析AST语法树,支持汉化变量与上下文绑定,并提供缓存与延迟执行机制,提升性能与灵活性。
91 0
QLExpress使用及源码分析
|
4月前
|
人工智能 机器人 Java
黑马最新项目
AIGC项目涵盖大模型私有化部署、聊天机器人、RAG知识库及代码提示工具;天机AI集成SpringAI与多模型工作流;云岚到家聚焦微服务与分布式架构;四方保险构建统一支付与时序数据应用;星辰WMS与Dify项目即将发布。
200 0
黑马最新项目
|
4月前
|
canal 缓存 关系型数据库
微服务原理篇(Canal-Redis)
本文介绍了ES索引同步的常见方案,重点讲解Canal+MQ数据同步机制。通过解析MySQL的binlog日志,Canal模拟slave伪装接入主库,实现增量数据捕获,并结合RabbitMQ保证消息顺序性地同步至Elasticsearch。同时探讨了缓存一致性问题,提出使用分布式锁(如Redis)控制并发写操作,避免双写不一致。还涵盖Redis持久化、集群模式、过期淘汰策略及缓存三剑客(穿透、雪崩、击穿)的解决方案,系统梳理了高并发场景下的数据同步与缓存保障技术体系。
238 0
 微服务原理篇(Canal-Redis)
|
4月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍使用Arthas排查Java应用CPU占用过高问题的完整流程,涵盖线程分析、阻塞定位、watch命令追踪异常、jad反编译实现热更新及火焰图分析,实现无需重启应用的高效故障排查与代码修复。
165 0
|
4月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
RAG通过检索与生成结合,提升大模型在企业场景的准确性与可控性。分块策略是其核心,直接影响检索效果与生成质量。本文系统解析五种主流分块方法:固定大小、语义、递归、基于结构及LLM分块,对比其优缺点与适用场景,并提出组合优化建议,助力构建高效、可信的RAG系统。
217 0
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型专业名词解释手册
本手册由油炸小波设计提示词、Manus创作,系统梳理大语言模型核心概念,涵盖基础原理、训练技术、优化压缩、推理应用、评估调试及伦理安全六大模块,深入浅出解析LLM关键技术术语。
426 0
|
6月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
Java 应用服务中间件 开发者
【实战指南】Java Socket编程:构建高效的客户端-服务器通信
【6月更文挑战第21天】Java Socket编程用于构建客户端-服务器通信。`Socket`和`ServerSocket`类分别处理两端的连接。实战案例展示了一个简单的聊天应用,服务器监听端口,接收客户端连接,并使用多线程处理每个客户端消息。客户端连接服务器,发送并接收消息。了解这些基础,加上错误处理和优化,能帮你开始构建高效网络应用。
854 10
|
数据采集 存储
4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频
本文介绍了如何使用SwiftSoup库和爬虫代理技术抓取网站视频资源。通过安装SwiftSoup、获取HTML内容、解析HTML以提取视频链接,以及设置爬虫代理来绕过访问限制,可以实现高效、灵活的视频资源获取。示例代码展示了一个完整的过程,包括下载并存储视频文件到设备。结合这两种技术,可以有效应对网站访问挑战,方便地获取互联网视频资源。
930 3
4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频