java数据脱敏处理,手机号,身份证号和银行卡号打码展示
目录
方式1:substring分割
方式2:正则匹配验证
方式3:StringUtils.overlay
1 先引入commons-lang3,这个基本每个项目都用到
2 数据处理
3 测试结果
方式1:substring分割
String phone = "13123456789";
String phoneNumber = phone.substring(0, 3) + "****" + phone.substring(7, phone.length());
System.out.println("phone总长度:" + phone.length());
System.out.println("phone前3位:" + phone.substring(0, 3));
System.out.println("phone中4位:" + phone.substring(3, 7));
System.out.println("phone后4位:" + phone.substring(7, phone.length()));
System.out.println("phone中4*:" + phoneNumber);
结果为:
phone总长度:11
phone前3位:131
phone中4位:2345
phone后4位:6789
phone中4*:131****6789
方式2:正则匹配验证
phone = "13123456789";
phoneNumber = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
System.out.println("正则phone中4*:" + phoneNumber);String idCard = "123456789987654321";
//$1、$2、……表示正则表达式里面第一个、第二个、……括号里面的匹配内容
String idCardNumber = idCard.replaceAll("(\\d{4})\\d{10}(\\w{4})", "$1****$2");
System.out.println("身份证号长度:" + idCard.length());
System.out.println("正则idCard中4*:" + idCardNumber);
正则phone中4*:131****6789
身份证号长度:18
正则idCard中4*:1234****4321
方式3:StringUtils.overlay
1 先引入commons-lang3,这个基本每个项目都用到
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.7</version>
</dependency>
2 数据处理
这里主要用StringUtils工具的overlay(String str,String overlay,int start,int end)方法可以在指定位置进行字符序列替换,从start索引处开始(包含)到end-1索引处为止进行替换
import org.apache.commons.lang3.StringUtils;/*** @Author: liangbl* @Date: 2019/5/7 14:05* @Description: 数据隐私显示 手机号,身份证号和银行卡号等*/
public class PrivacyDimmer {private static final String OVERLAY = "****";private static final int START = 3;private static final int END = 7;/*** 139****0504** @param content* @return*/public static String maskMobile(String content) {if (StringUtils.isEmpty(content)) {return "";}return StringUtils.overlay(content, OVERLAY, START, END);}/*** 过滤邮箱账号* 132****99308084911** @param email* @return*/public static String maskEmail(String email) {if (StringUtils.isEmpty(email)) {return "";}String at = "@";if (!email.contains(at)) {return email;}/*** 这里主要逻辑是需要保留邮箱的注册商 比如@qq.com*/int length = StringUtils.indexOf(email, at);String content = StringUtils.substring(email, 0, length);String mask = StringUtils.overlay(content, OVERLAY, START, END);return mask + StringUtils.substring(email, length);}/*** 身份证打码操作* 132****99308084911** @param idCard* @return*/public static String maskIdCard(String idCard) {if (StringUtils.isEmpty(idCard)) {return "";}return StringUtils.overlay(idCard, OVERLAY, START, END);}
}
3 测试结果
@Test
public void overlay() {logger.info("手机号 {}", PrivacyDimmer.maskMobile("13661014724"));logger.info("手机号 {}", PrivacyDimmer.maskMobile("13"));logger.info("邮箱 {}", PrivacyDimmer.maskEmail("845885222@qq.com"));logger.info("邮箱不够四位 {}", PrivacyDimmer.maskEmail("22@qq.com"));logger.info("邮箱错误 {}", PrivacyDimmer.maskEmail("22qq.com"));logger.info("假身份证号 {}",PrivacyDimmer.maskIdCard("132128199308084911"));
}
20:17:51.730 [main] INFO com.lockbur.open.AppTest - 手机号 136****4724
20:17:51.740 [main] INFO com.lockbur.open.AppTest - 手机号 13****
20:17:51.741 [main] INFO com.lockbur.open.AppTest - 邮箱 845****22@qq.com
20:17:51.741 [main] INFO com.lockbur.open.AppTest - 邮箱不够四位 22****@qq.com
20:17:51.742 [main] INFO com.lockbur.open.AppTest - 邮箱错误 22qq.com
20:17:51.742 [main] INFO com.lockbur.open.AppTest - 假身份证号 132****99308084911
参考:http://www.cnblogs.com/wangzn/p/7210295.html
https://blog.csdn.net/WK313753744/article/details/87867720
java数据脱敏处理,手机号,身份证号和银行卡号打码展示相关推荐
- wps或Excel将身份证号、银行卡号复制到Excel中的时候出现E+问题的解决方案
我们在日常的坐标过程中难免会用到文字和图表的处理工具,也就是我们常说的office办公工具,现在比较常用的是两款,一款是WPS,一款式MSOffice,那遇到复制身份证号复制银行卡号出现错误该怎么解决 ...
- Java对姓名, 手机号, 身份证号, 地址进行脱敏
替换几位就用几个*号 一.姓名 1, 脱敏规则: 只显示第一个汉字,比如李某某置换为李**, 李某置换为李* private static String desensitizedName(String ...
- [前台]---js+jquery校验姓名,手机号,身份证号
记一次前台验证姓名,手机号,身份证号的代码,复制即用,前提是有引入jquery. var name = "姓名"if(!is_forbidName(name)){alert(&qu ...
- EXCEL规范数据输入教程-验证身份证号
EXCEL日常工作中经常会输入身份证号码,一不小心就可能出错,今天大飞老师就分享这样一个示例EXCEL规范数据输入教程-验证身份证号. 我们首先要保证在EXCEL中能正确输入身份证号码(PS:身份证号 ...
- Java实现对手机号、身份证号、护照号脱敏
目录 1.Java原生代码实现: 2.使用 Hutool 工具实现: 背景: 我们在项目中经常会需要用到用户的敏感信息,比如手机号.身份证号.护照号: 当数据需要在页面上进行展示的时候就需要进行脱敏, ...
- 地址 脱敏规则_Java对姓名, 手机号, 身份证号, 地址进行脱敏
替换几位就用几个*号 一.姓名 1, 脱敏规则: 只显示第一个汉字,比如李某某置换为李**, 李某置换为李* private staticString desensitizedName(String ...
- Java身份证号脱敏、校验身份证号合法性、根据身份证号获取年龄、根据生日获取年龄
这里写目录 身份证号编码规则 身份证号脱敏 身份证号合法性校验 根据身份证号获取年龄 根据生日日期获取年龄 根据身份证号获取年龄.生日的Map集合 身份证号编码规则 第一.二位表示省(自治区.直辖市. ...
- wps姓名隐藏为星号_EXCEL里如何给姓名手机号身份证号等隐私信息设置星号隐藏起来?...
在EXCEL表格里如图有时为了保护隐私,需要把姓名啊手机啊身份证号啊这些敏感的个人信息以星号显示,要如何操作呢?下面演示一下操作步骤: 一.星号姓名 1.在需要设置的单元格里输入=REPLACE(E2 ...
- 正则表达式验证手机号 身份证号 银行卡号 姓名输入
手机号验证var mobile = /^1[3|4|5|7|8]\d{9}$/;mobile.test(value);生日格式转换'20171102'.replace(/^(\d{4})(\d{2}) ...
最新文章
- css,css,javascript实现一个简单的计算器
- 查看某段代码或语句的被调用路径的方法小结
- 电脑有回声_专递课堂互动教室现场有回声怎么办?
- 在有赞工作两年半的感受
- python爬虫用多线程还是多进程_python爬虫之多线程、多进程爬虫
- 工作两个月的感受随笔
- 互联网晚报 | 9月22日 星期三 | 中国电信控股股东拟40亿元增持;碧桂园服务100亿收购富良环球;搜狗浏览器论坛即将下线...
- 《Python编程从入门到实践》记录之将Python函数存储在模块中(import、import*)
- 敏捷开发一千零一问系列之十三:故事点好还是人天好?
- [译] Promise A+ 标准
- linux rhce教程,RHCE之路_Linux教程_Linux公社-Linux系统门户网站
- hbase0.95 官方文档
- mysql数据库系统时区_mysql 杂记 —— 时区问题
- [BZOJ4246]两个人的星座(计算几何)
- codeup刷题 2.6小节——C/C++快速入门->函数 ——《算法笔记》(胡凡)
- CSS-margin外边距
- 计算机 手机原理是什么,什么是手机投屏,手机投屏到电脑上的原理
- 景点门票销售管理系统 基于 python实现gui界面 之 笔记
- 1234组成无重复三位数
- mysql启动异常:The server quit without updating PID file