java数据脱敏处理,手机号,身份证号和银行卡号打码展示
结果图如下
20:17:51.730 [main] INFO com.lockbur.open.AppTest - 手机号 1364724
20:17:51.740 [main] INFO com.lockbur.open.AppTest - 手机号 13
20:17:51.741 [main] INFO com.lockbur.open.AppTest - 邮箱 84522@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
1
2
3
4
5
6
1 先引入commons-lang3,这个基本每个项目都用到
org.apache.commons
commons-lang3
3.7
1
2
3
4
5
2 数据处理
这里主要用StringUtils工具的overlay(String str,String overlay,int start,int end)方法可以在指定位置进行字符序列替换,从start索引处开始(包含)到end-1索引处为止进行替换
package com.lockbur.open.utils;
import org.apache.commons.lang3.StringUtils;
/**
-
数据隐私显示 手机号,身份证号和银行卡号等
-
@author wangkun23
/
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);
}
- 这里主要逻辑是需要保留邮箱的注册商 比如@qq.com
/**
- 身份证打码操作
- 132****99308084911
- @param idCard
- @return
*/
public static String maskIdCard(String idCard) {
if (StringUtils.isEmpty(idCard)) {
return “”;
}
return StringUtils.overlay(idCard, OVERLAY, START, END);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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”));
}
作者:一名清官
来源:CSDN
原文:https://blog.csdn.net/WK313753744/article/details/87867720
版权声明:本文为博主原创文章,转载请附上博文链接!
Java-----隐藏手机号中间四位
2016年03月16日 14:54:37 hekewangzi 阅读数:31432
phone.replaceAll("(\d{3})\d{4}(\d{4})","$1****$2");
152****4799
idCard.replaceAll("(\d{4})\d{10}(\w{4})","$1*****$2");
4304*****7733
$1、$2、……表示正则表达式里面第一个、第二个、……括号里面的匹配内容
处理姓名
String sex = rs.getSex();
if(“1”.equals(sex)){
invnm=invnm.substring(0,1)+“先生”;
} else {
invnm=invnm.substring(0,1)+“女士”;
}