Spring boot注解实现信息脱敏
@Mask(MaskType.USER) 就是对你字段里的用户名/账号 做脱敏显示
作用
java
@Mask(MaskType.USER)
private String username;
效果一般是:
- 用户名:
张三→张* - 用户名:
张三丰→张*丰 - 用户名:
li_si→l**i - 用户名:
wangwu→w***u
规则通常是:
只显示第一个字符 + 最后一个字符,中间用 * 掩盖
常见 MaskType 全家桶
你项目里大概率还有这些:
java
@Mask(MaskType.PHONE) // 手机:138****1234
@Mask(MaskType.USER) // 用户名:张*三、李*
@Mask(MaskType.ID_CARD) // 身份证:110***********1234
@Mask(MaskType.EMAIL) // 邮箱:t***t@qq.com
@Mask(MaskType.BANK_CARD)// 银行卡:6222********1234
它什么时候生效?
- 接口返回 JSON 给前端时 自动脱敏
- 日志打印时脱敏
- 业务代码里拿到的还是真实值,不影响逻辑