博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工具类--敏感信息掩码规则
阅读量:4915 次
发布时间:2019-06-11

本文共 3871 字,大约阅读时间需要 12 分钟。

/**  * 类名称: DisplayUtil 
* 类描述: 敏感信息掩码规则
*/ public class DisplayUtil {
/** * 手机号显示首3末4位,中间用*号隐藏代替,如:138****4213 * * @param mobile * @return */ public static String displayMobile(String mobile) {
if(StringUtils.isBlank(mobile) || mobile.length() <= 8) {
return mobile; } return wordMask(mobile, 3, 4, "*"); } /** * 电话号码显示区号及末4位,中间用*号隐藏代替,如:010****4213 * * @param telephone * @return */ public static String displayTelephone(String telephone) {
if(StringUtils.isBlank(telephone)) {
return telephone; } String result; if (telephone.length() > 8) {
if (telephone.contains("-")) {
String[] temp = telephone.split("-"); result = temp[0] + "****" + temp[1].substring(temp[1].length() - 4, temp[1].length()); } else {
result = telephone.substring(0, 3) + "****" + telephone.substring(telephone.length() - 4, telephone.length()); } } else {
result = "****" + telephone.substring(telephone.length() - 4, telephone.length()); } return result; } /** * 身份证号显示首3末3位,中间用*号隐藏代替,如:421*******012 * * @param idCard * @return */ public static String displayIDCard(String idCard) {
if(StringUtils.isBlank(idCard)) {
return idCard; } return wordMask(idCard, 3, 3, "*"); } /** * 银行卡显示首3末3位,中间用*号隐藏代替,如:622********123 * * @param cardNo * @return */ public static String displayBankCard(String cardNo) {
if(StringUtils.isBlank(cardNo) || cardNo.length() < 10) {
return cardNo; } return wordMask(cardNo, 3, 3, "*"); } /** * 邮箱像是前两位及最后一位字符,及@后邮箱域名信息,如:ye****y@163.com * * @param email * @return */ public static String displayEmail(String email) {
if(StringUtils.isBlank(email)) {
return email; } String[] temp = email.split("@"); return wordMask(temp[0], 1, 1, "*") + "@" + temp[1]; } /** * 三个字掩码,如:张晓明 如:张*明 * 两个字掩码,如:小明 如:*明 * 多个字掩码,如:张小明明 如:张**明 * * @param name * @return */ public static String displayName(String name) {
if(StringUtils.isBlank(name) || name.length() == 1) {
return name; } if (name.length() == 2) {
return "*" + name.substring(1, 2); } return wordMask(name, 0, 1, "*"); } /** * Cvv全隐藏,如: *** * * @param cvv * @return */ public static String displayCvv(String cvv) {
if(StringUtils.isBlank(cvv)) {
return cvv; } return "***"; } /** * Expdate全隐藏,如: **** * * @param expdate * @return */ public static String displayExpdate(String expdate) {
if(StringUtils.isBlank(expdate)) {
return expdate; } return "****"; } /** * 对字符串进行脱敏处理 -- * * @param word 被脱敏的字符 * @param startLength 被保留的开始长度 前余n位 * @param endLength 被保留的结束长度 后余n位 * @param pad 填充字符 * */ public static String wordMask(String word,int startLength ,int endLength,String pad) {
if (startLength + endLength > word.length()) {
return org.apache.commons.lang3.StringUtils.leftPad("", word.length() - 1, pad); } String startStr = word.substring(0, startLength); String endStr = word.substring(word.length() - endLength, word.length()); return startStr + org.apache.commons.lang3.StringUtils.leftPad("", word.length() - startLength - endLength, pad) + endStr; } }

转载于:https://www.cnblogs.com/tieandxiao/p/10931439.html

你可能感兴趣的文章
页面的按钮3d效果
查看>>
CSS-微信开放UI样式
查看>>
TensorFlow 学习(2)——正式起步
查看>>
TableViewer使用
查看>>
GDB调试原理——ptrace系统调用
查看>>
包含单引号的sql
查看>>
net2.0对于递归变量的处理方式不同引发的递归问题
查看>>
asp.net 数据库连接 使用事务处理(一)
查看>>
Ionic学习
查看>>
ContentProvider的使用
查看>>
使用聚合接口获取汉字数据字典
查看>>
STM32之DMA实例
查看>>
Spring MVC入门知识总结
查看>>
java RandomAccessFile类(随机访问文件)
查看>>
编写弹窗 并居中
查看>>
XML Helper XML操作类
查看>>
2、iptables基本应用
查看>>
程序员成长过程
查看>>
项目实战02:nginx 反向代理负载均衡、动静分离和缓存的实现
查看>>
BZOJ3139/BZOJ1306 HNOI2013比赛/CQOI2009循环赛(搜索)
查看>>