java数据打码/脱敏工具类(姓名,手机号码,身份证,详细地址)

本文主要是介绍java数据打码/脱敏工具类(姓名,手机号码,身份证,详细地址),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

package com.tms.common.utils;import com.baomidou.mybatisplus.toolkit.StringUtils;public class EncryptionUtils {/*** 定义所有常量*/public static final int ONE = 1;public static final int TWO = 2;/** 姓名* */public static String desensitizedName(String str) {if (str == null) {return null;}if (str.length() == ONE) {return str;} else if (str.length() == TWO) {return str.substring(0, 1) +"*";} else {Integer length = str.length();StringBuffer middle = new StringBuffer();for (int i = 0; i < str.substring(1, length - 1).length(); i++) {middle.append("*");}return str.substring(0, 1) + middle + str.substring(length - 1, length);}}/** 手机号码* */public static  String desensitizedPhoneNumber(String phoneNumber){if(StringUtils.isNotEmpty(phoneNumber)){phoneNumber = phoneNumber.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");}return phoneNumber;}/** 身份证* */public static  String desensitizedIdNumber(String idNumber){if (StringUtils.isNotEmpty(idNumber)) {if (idNumber.length() == 15){idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1******$2");}if (idNumber.length() == 18){idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1*********$2");}}return idNumber;}/** 详细地址* */public static  String desensitizedAddress(String address){if (StringUtils.isNotEmpty(address)) {int length = address.length();int indes = address.indexOf("区");if (indes == -1) {indes = address.indexOf("市");}address = address.substring(0, indes + 1);StringBuffer middle = new StringBuffer();for (int i = 0; i < length - indes; i++) {middle.append("*");}return address + middle;}return address;}/*** 测试*/public static void main(String[] args) {System.out.println("名字: " + EncryptionUtils.desensitizedName("张子枫"));System.out.println("名字: " + EncryptionUtils.desensitizedName("易烊千玺"));System.out.println("名字: " + EncryptionUtils.desensitizedName("玛克西姆·高尔基"));System.out.println("名字: " + EncryptionUtils.desensitizedName("古力娜扎尔·拜合提亚尔"));System.out.println("==============================================");System.out.println("手机号: " + desensitizedPhoneNumber("13100355465"));System.out.println("手机号: " + desensitizedPhoneNumber("15616966574"));System.out.println("手机号: " + desensitizedPhoneNumber("15921996220"));System.out.println("手机号: " + desensitizedPhoneNumber("111111234112"));System.out.println("手机号: " + desensitizedPhoneNumber("1310038123412345465"));System.out.println("==============================================");System.out.println("身份证: " + desensitizedIdNumber("51130219860910074116"));System.out.println("身份证: " + desensitizedIdNumber("44058219980704544X"));System.out.println("身份证: " + desensitizedIdNumber("510681199904111823"));System.out.println("身份证: " + desensitizedIdNumber("341223199005111329"));System.out.println("身份证: " + desensitizedIdNumber("211382198312023415"));System.out.println("身份证: " + desensitizedIdNumber("230103196310100225"));System.out.println("身份证: " + desensitizedIdNumber("431081200001241189"));System.out.println("==============================================");System.out.println("地址: " + desensitizedAddress("四川省遂宁船山新桥镇新桥火车站"));System.out.println("地址: " + desensitizedAddress("四川省成都市锦江区柳江街道三色路华润东原时光绘三栋1817"));System.out.println("地址: " + desensitizedAddress("广东省广州市番禺区大石街道大石镇礼村中路南约街8号"));System.out.println("地址: " + desensitizedAddress("浙江省温州市瑞安市安阳街道中瑞景苑8栋"));System.out.println("地址: " + desensitizedAddress("安徽省合肥市庐阳区双岗街道阜阳路桥西沿河路中央花园小区4栋4单元1507"));System.out.println("地址: " + desensitizedAddress("江西省宜春市丰城市剑南街道人才教育小区41号丰城住总运营有限公司"));System.out.println("地址: " + desensitizedAddress("上海上海市浦东新区北蔡镇御桥路1978弄38号501"));System.out.println("==============================================");}}

结果如下:
在这里插入图片描述

这篇关于java数据打码/脱敏工具类(姓名,手机号码,身份证,详细地址)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/Hxuening/article/details/119150810
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/216080

相关文章

Java List排序实例代码详解

《JavaList排序实例代码详解》:本文主要介绍JavaList排序的相关资料,Java排序方法包括自然排序、自定义排序、Lambda简化及多条件排序,实现灵活且代码简洁,文中通过代码介绍的... 目录一、自然排序二、自定义排序规则三、使用 Lambda 表达式简化 Comparator四、多条件排序五、

Java实例化对象的​7种方式详解

《Java实例化对象的​7种方式详解》在Java中,实例化对象的方式有多种,具体取决于场景需求和设计模式,本文整理了7种常用的方法,文中的示例代码讲解详细,有需要的可以了解下... 目录1. ​new 关键字(直接构造)​2. ​反射(Reflection)​​3. ​克隆(Clone)​​4. ​反序列化

Java 压缩包解压实现代码

《Java压缩包解压实现代码》Java标准库(JavaSE)提供了对ZIP格式的原生支持,通过java.util.zip包中的类来实现压缩和解压功能,本文将重点介绍如何使用Java来解压ZIP或RA... 目录一、解压压缩包1.zip解压代码实现:2.rar解压代码实现:3.调用解压方法:二、注意事项三、总

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

利用Python实现Excel文件智能合并工具

《利用Python实现Excel文件智能合并工具》有时候,我们需要将多个Excel文件按照特定顺序合并成一个文件,这样可以更方便地进行后续的数据处理和分析,下面我们看看如何使用Python实现Exce... 目录运行结果为什么需要这个工具技术实现工具的核心功能代码解析使用示例工具优化与扩展有时候,我们需要将

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring Boot 事务详解(事务传播行为、事务属性)

《SpringBoot事务详解(事务传播行为、事务属性)》SpringBoot提供了强大的事务管理功能,通过@Transactional注解可以方便地配置事务的传播行为和属性,本文将详细介绍Spr... 目录Spring Boot 事务详解引言声明式事务管理示例编程式事务管理示例事务传播行为1. REQUI

Python+PyQt5实现文件夹结构映射工具

《Python+PyQt5实现文件夹结构映射工具》在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下... 目录概述功能亮点展示效果软件使用步骤代码解析1. 主窗口设计(FolderCopyApp)2. 拖拽路径

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a