通用脱敏工具类
一、脱敏工具类


package com.imooc.utils;import sun.applet.Main;/**
* 通用脱敏工具类
* 可用于:
* 用户名
* 手机号
* 邮箱
* 地址等 */public class DesensitizationUtil {private static final int SIZE = 6;private static final String SYMBOL = "*";public static void main(String[] args) {
String name = commonDisplay("慕课网");
String mobile = commonDisplay("13900000000");
String mail = commonDisplay("admin@imooc.com");
String address = commonDisplay("北京大运河东路888号");
System.out.println(name);
System.out.println(mobile);
System.out.println(mail);
System.out.println(address);
}/** * 通用脱敏方法
* @param value
* @return */public static String commonDisplay(String value) {if (null == value || "".equals(value)) {return value;
}int len = value.length();int pamaone = len / 2;int pamatwo = pamaone - 1;int pamathree = len % 2;
StringBuilder stringBuilder = new StringBuilder();if (len <= 2) {if (pamathree == 1) {return SYMBOL;
}
stringBuilder.append(SYMBOL);
stringBuilder.append(value.charAt(len - 1));
} else {if (pamatwo <= 0) {
stringBuilder.append(value.substring(0, 1));
stringBuilder.append(SYMBOL);
stringBuilder.append(value.substring(len - 1, len));
} else if (pamatwo >= SIZE / 2 && SIZE + 1 != len) {int pamafive = (len - SIZE) / 2;
stringBuilder.append(value.substring(0, pamafive));for (int i = 0; i < SIZE; i++) {
stringBuilder.append(SYMBOL);
}if ((pamathree == 0 && SIZE / 2 == 0) || (pamathree != 0 && SIZE % 2 != 0)) {
stringBuilder.append(value.substring(len - pamafive, len));
} else {
stringBuilder.append(value.substring(len - (pamafive + 1), len));
}
} else {int pamafour = len - 2;
stringBuilder.append(value.substring(0, 1));for (int i = 0; i < pamafour; i++) {
stringBuilder.append(SYMBOL);
}
stringBuilder.append(value.substring(len - 1, len));
}
}return stringBuilder.toString();
}
}View Code
二、使用



@Transactional(propagation = Propagation.SUPPORTS)
@Overridepublic PagedGridResult queryPagedComments(String itemId,
Integer level,
Integer page,
Integer pageSzie) {
Map<String,Object> map =new HashMap<>();
map.put("itemId",itemId);
map.put("level",level);/** * page:第几页
* pageSize:每页显示多少条 */PageHelper.startPage(page,pageSzie);
List<ItemCommentVO> list=itemsMapperCustom.queryItemComments(map);for (ItemCommentVO vo : list
) {
vo.setNickName(DesensitizationUtil.commonDisplay(vo.getNickName()));
}return setterPagedGrid(list,page);
}View Code
















