脱敏工具

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

}


相关文章
|
11月前
|
缓存
QLExpress使用及源码分析
本文介绍基于QLExpress的规则引擎实现方案,涵盖实体构建、接口定义与脚本编写。通过@QLAlias注解映射字段别名,结合YAML配置规则表达式,实现逻辑解耦。运行时动态解析AST语法树,支持汉化变量与上下文绑定,并提供缓存与延迟执行机制,提升性能与灵活性。
219 0
QLExpress使用及源码分析
|
11月前
|
存储 关系型数据库 MySQL
微服务原理篇(XXLJOB-幂等-MySQL)
本文介绍了XXL-JOB任务调度的优势、组成结构及热点商品缓存更新任务的实现,涵盖幂等性概念与解决方案,并深入解析了MySQL存储引擎特性、索引失效场景、回表与覆盖索引原理以及SQL调优和分库分表策略。
444 0
微服务原理篇(XXLJOB-幂等-MySQL)
|
11月前
|
canal 缓存 关系型数据库
微服务原理篇(Canal-Redis)
本文介绍了ES索引同步的常见方案,重点讲解Canal+MQ数据同步机制。通过解析MySQL的binlog日志,Canal模拟slave伪装接入主库,实现增量数据捕获,并结合RabbitMQ保证消息顺序性地同步至Elasticsearch。同时探讨了缓存一致性问题,提出使用分布式锁(如Redis)控制并发写操作,避免双写不一致。还涵盖Redis持久化、集群模式、过期淘汰策略及缓存三剑客(穿透、雪崩、击穿)的解决方案,系统梳理了高并发场景下的数据同步与缓存保障技术体系。
1171 0
 微服务原理篇(Canal-Redis)
|
10月前
|
弹性计算 人工智能 安全
阿里云服务器:ECS介绍、费用价格、功能优势及使用全解析,2026有问必答FAQ
阿里云ECS是国产份额第一的弹性云服务器,安全可靠、弹性伸缩、按需付费。2026年推经济型e实例(¥99/年起)、通用u1/u2i等新规格,支持免费试用、新老同享优惠,适配建站、AI、游戏等全场景。
731 1
|
11月前
|
人工智能 机器人 Java
黑马最新项目
AIGC项目涵盖大模型私有化部署、聊天机器人、RAG知识库及代码提示工具;天机AI集成SpringAI与多模型工作流;云岚到家聚焦微服务与分布式架构;四方保险构建统一支付与时序数据应用;星辰WMS与Dify项目即将发布。
579 0
黑马最新项目
|
11月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
RAG通过检索与生成结合,提升大模型在企业场景的准确性与可控性。分块策略是其核心,直接影响检索效果与生成质量。本文系统解析五种主流分块方法:固定大小、语义、递归、基于结构及LLM分块,对比其优缺点与适用场景,并提出组合优化建议,助力构建高效、可信的RAG系统。
468 0
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型专业名词解释手册
本手册由油炸小波设计提示词、Manus创作,系统梳理大语言模型核心概念,涵盖基础原理、训练技术、优化压缩、推理应用、评估调试及伦理安全六大模块,深入浅出解析LLM关键技术术语。
840 0
|
11月前
|
消息中间件 人工智能 NoSQL
RocketMQ:A2A协议实现多智能体优化
Apache RocketMQ推出专为AI场景设计的轻量级通信模型LiteTopic,助力多智能体高效协作。通过百万级队列支持、会话状态持久化、断点续传与动态订阅等能力,解决AI应用中长时交互、上下文管理难、资源浪费等问题。结合A2A协议与AgentScope框架,实现高可靠、低延迟的Agent-to-Agent通信,构建稳定可扩展的企业级AI系统架构。(238字)
455 0