脱敏框架sensitive简单使用
脱敏框架sensitive简单使用
对用户名,手机号,邮箱,银行卡号,密码进行脱敏处理
参考资料地址1:
参考资料地址2:
01 导入依赖maven
<dependency> <groupId>com.github.houbb</groupId> <artifactId>sensitive</artifactId> <version>0.0.2-core</version> </dependency>
02 定义对象
@Data @Accessors(chain = true) public class UserDTO { //用户名 @Sensitive(strategy = StrategyChineseName.class) private String username; //身份证 @Sensitive(strategy = StrategyCardId.class) private String idCard; //密码 @Sensitive(strategy = StrategyPassword.class) private String password; //邮箱 @Sensitive(strategy = StrategyEmail.class) private String email; //手机号 @Sensitive(strategy = StrategyPhone.class) private String phone; //类型为集合或者对象 @SensitiveEntry @Sensitive(strategy = StrategyChineseName.class) private List<String> userList; }
类型为集合或者对象
如果某个属性是单个集合或者对象,则需要使用注解
@SensitiveEntry
。
放在集合属性上,且属性为普通对象
会遍历每一个属性,执行上面的脱敏策略。
放在对象属性上
会处理对象中各个字段上的脱敏注解信息。
放在集合属性上,且属性为对象
遍历每一个对象,处理对象中各个字段上的脱敏注解信息。
@SpringBootTest public class SensitiveTest { /** * 脱敏单个字段 */ @Test public void testSensitiveTwo() { String email = "123456@qq.com"; IStrategy strategy = new StrategyEmail(); String emailSensitive = (String) strategy.des(email, null); System.out.println("脱敏后的邮箱:" + emailSensitive); //脱敏后的邮箱:123***@qq.com } /** * 对象 */ @Test public void testSensitiveOne() { UserDTO user = new UserDTO() .setEmail("123456@qq.com") .setIdCard("123456190001011234") .setPassword("1564544") .setPhone("18888888888") .setUsername("小李飞刀") .setUserList(Arrays.asList("法外狂徒","四大金刚","魑魅魍魉")) ; //脱敏处理 UserDTO sensitiveUser = SensitiveUtil.desCopy(user); System.out.println("脱敏前: " + user); System.out.println("脱敏后: " + sensitiveUser); //脱敏前: UserDTO(username=小李飞刀, idCard=123456190001011234, password=1564544, email=123456@qq.com, phone=18888888888, userList=[法外狂徒, 四大金刚, 魑魅魍魉]) //脱敏后: UserDTO(username=小**刀, idCard=123456**********34, password=null, email=123***@qq.com, phone=188****8888, userList=[法**徒, 四**刚, 魑**魉]) } }