背景
敏感信息如手机号、身份证、邮箱等信息需要脱敏后展示给前台,如果需要查看,则需要申请权限,查询时需要记录操作日志。
方案
通过JsonSerializer和注解,在json序列化的时候做脱敏操作
此处使用redis存储了加密后的key和明文,如果不需要反查和记录操作日志可以去掉相关代码
流程
代码
脱敏工具类
package com.sky.ddtcode.desensitization;
import cn.hutool.core.util.StrUtil;
/**
* 脱敏工具类
*/
public class DesensitizedUtil
{
/**
* 密码的全部字符都用*代替,比如:******
*
* @param password 密码
* @return 脱敏后的密码
*/
public static String password(String password)
{
if (StrUtil.isBlank(password))
{
return StrUtil.EMPTY;
}
return StrUtil.repeat('*', password.length());
}
/**
* 车牌中间用*代替,如果是错误的车牌,不处理
*
* @param carLicense 完整的车牌号
* @return 脱敏后的车牌
*/
public static String carLicense(String carLicense)
{
if (StrUtil.isBlank(carLicense))
{
return StrUtil.EMPTY;
}
// 普通车牌
if (carLicense.length() == 7)
{
carLicense = StrUtil.hide(carLicense, 3, 6);
}
else if (carLicense.length() == 8)
{
// 新能源车牌
carLicense = StrUtil.hide(carLicense, 3, 7);
}
return carLicense;
}
}


最低0.47元/天 解锁文章
2987

被折叠的 条评论
为什么被折叠?



