精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Springboot整合Hutool自定義注解實現數據脫敏

開發 架構
本文通過Spring Boot與Hutool庫的結合使用自定義注解,提供了一個簡單而強大的方式來實現數據脫敏。希望能幫助到你,成功地實現數據脫敏功能,并提高應用程序的安全性。

一、前言

我們在項目中會處理敏感數據(如手機號、身份證號、姓名、地址等)時,通常需要對這些數據進行脫敏,以確保數據隱私和安全。

我們本次使用 Hutool 庫來輕松實現數據脫敏,如果項目中不讓使用,可以自己防著hutool來寫一些工具類。

本次使用Springboot整合Hutool來自定義注解實現數據脫敏!

二、什么是數據脫敏

數據脫敏(Data Masking),也稱為數據遮蔽或數據隱藏,是一種數據保護技術,用于處理和存儲敏感數據時,以減少或消除數據中的敏感信息,從而保護數據的隱私和安全。數據脫敏的主要目的是在保持數據可用性的同時,減少數據泄露和濫用的風險。

「數據脫敏一般指數據庫正常存儲,返回前端時進行數據庫處理!」

三、Hutool簡介

Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以“甜甜的”。

Hutool是項目中“util”包友好的替代,它節省了開發人員對項目中公用類和公用工具方法的封裝時間,使開發專注于業務,同時可以最大限度的避免封裝不完善帶來的bug。

雖然Hutool可能會有一些bug,比起小編寫的還是強上不少的,所以選定它來!

現在最新版為:5.8.16,我們直接使用最新的,bug會少一些,功能會完善一些!

支持的脫敏規則:

  • 用戶id
  • 中文姓名
  • 身份證號
  • 座機號
  • 手機號
  • 地址
  • 電子郵件
  • 密碼
  • 中國大陸車牌,包含普通車輛、新能源車輛
  • 銀行卡

四、實戰整合

1、導入依賴

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.16</version>
</dependency>

2、自定義注解

@JsonSerialize(using = SensitiveInfoSerializer.class)用于指定在序列化時應該使用哪個自定義序列化器類

「需要和下面的注解搭配使用SensitiveInfoSerializer我們自定義的序列化器才會生效」

@JacksonAnnotationsInside 主要用于標記其他自定義注解,這意味著你可以在一個 Jackson 注解內部使用其他自定義注解,以組合各種注解來實現更復雜的序列化和反序列化邏輯。

/**
 * @author wangzhenjun
 * @date 2023/9/11 14:15
 */
@JacksonAnnotationsInside
@JsonSerialize(using = SensitiveInfoSerializer.class)
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Desensitization {

    DesensitizationType type() default DesensitizationType.DEFAULT;

    /**
     * 前置不需要打碼的長度
     */
    int prefixLen() default 0;

    /**
     * 后置不需要打碼的長度
     */
    int suffixLen() default 0;

    /**
     * 遮罩字符
     */
    String maskingChar() default "*";
}

3、支持類型枚舉

/**
 * @author wangzhenjun
 * @date 2023/9/11 14:43
 */
public enum DesensitizationType {

    // 自定義規則
    CUSTOMIZE_RULE,
    // 默認的
    DEFAULT,
    //用戶id
    USER_ID,
    //中文名
    CHINESE_NAME,
    //身份證號
    ID_CARD,
    //座機號
    FIXED_PHONE,
    //手機號
    MOBILE_PHONE,
    //地址
    ADDRESS,
    //電子郵件
    EMAIL,
    //密碼
    PASSWORD,
    //中國大陸車牌,包含普通車輛、新能源車輛
    CAR_LICENSE,
    //銀行卡
    BANK_CARD
}

4、自定義序列化器

關于自定義的規則,大家可以根據自己的需求來寫工具類,我這里簡單使用Hutool的工具來了!

StrUtil.replace(value, prefixLen, suffixLen, maskingChar)StrUtil.hide(value, prefixLen, suffixLen)

createContextual 方法首先在序列化過程開始時被調用,返回的序列化器實例將用于后續的序列化過程。

serialize 方法負責實際的序列化邏輯,將字段的值轉換為JSON,并可以在其中執行自定義的脫敏邏輯。

/**
 * 數據脫敏序列化器
 *
 * @author wangzhenjun
 * @date 2023/9/11 14:16
 */
public class SensitiveInfoSerializer extends JsonSerializer<String> implements ContextualSerializer {

    private boolean useMasking = false;
    private DesensitizationType type;
    private int prefixLen;
    private int suffixLen;
    private String maskingChar;

    @Override
    public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        if (useMasking && value != null) {
            switch (type) {
                case MOBILE_PHONE:
                    gen.writeString(DesensitizedUtil.mobilePhone(value));
                    break;
                case ID_CARD:
                    gen.writeString(DesensitizedUtil.idCardNum(value, prefixLen, suffixLen));
                    break;
                case CUSTOMIZE_RULE:
//                    gen.writeString(StrUtil.replace(value, prefixLen, suffixLen, maskingChar));
                    gen.writeString(StrUtil.hide(value, prefixLen, suffixLen));
                    break;
                case CHINESE_NAME:
                    gen.writeString(DesensitizedUtil.chineseName(value));
                    break;
                case DEFAULT:
                    gen.writeString(value);
                default:
                    gen.writeString(value);
            }
        } else {
            gen.writeObject(value);
        }
    }

    @Override
    public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) {
        if (property != null) {
            Desensitization desensitization = property.getAnnotation(Desensitization.class);
            if (desensitization != null) {
                this.type = desensitization.type();
                this.prefixLen = desensitization.prefixLen();
                this.suffixLen = desensitization.suffixLen();
                this.maskingChar = desensitization.maskingChar();
                useMasking = true;
            }
        }
        return this;
    }
}

5、實體類應用

/**
 * @author wangzhenjun
 * @date 2023/9/12 9:15
 */
@Data
public class User {

    @Desensitization(type = DesensitizationType.ID_CARD,prefixLen = 6,suffixLen = 16)
    private String cardId;

    @Desensitization(type = DesensitizationType.CHINESE_NAME)
    private String name;

    @Desensitization(type = DesensitizationType.MOBILE_PHONE)
    private String phone;

    @Desensitization(type = DesensitizationType.CUSTOMIZE_RULE,prefixLen = 3,suffixLen = 6)
    private String info;
}

6、測試

@GetMapping("/getUser")
public Result getUser(){
    User user = new User();
    user.setCardId("372911111111111111");
    user.setPhone("15822229999");
    user.setName("趙飛燕");
    user.setInfo("這是機密文件,該打碼打碼");
    return Result.success(user);
}

完美脫敏,此次應該有掌聲!

五、總結

本文通過Spring Boot與Hutool庫的結合使用自定義注解,提供了一個簡單而強大的方式來實現數據脫敏。希望能幫助到你,成功地實現數據脫敏功能,并提高應用程序的安全性。

本次例子脫敏選項沒有演示全,大家可以自行補充完成,成為你們需要的數據脫敏策略,從而完美的處理用戶數據脫敏問題!

可以試著使用AOP來完成脫敏,有興趣的可以試一下哈!

責任編輯:姜華 來源: 小王博客基地
相關推薦

2024-07-02 11:42:53

SpringRedis自定義

2024-10-09 10:46:41

springboot緩存redis

2023-10-11 07:57:23

springboot微服務

2023-10-24 13:48:50

自定義注解舉值驗證

2021-02-20 11:40:35

SpringBoot占位符開發技術

2024-12-27 15:37:23

2021-12-30 12:30:01

Java注解編譯器

2022-02-17 07:10:39

Nest自定義注解

2017-08-03 17:00:54

Springmvc任務執行器

2024-10-14 17:18:27

2021-06-07 08:39:58

SpringBootMyBatisMapper

2023-09-04 08:12:16

分布式鎖Springboot

2012-02-02 13:45:28

JavaJSP

2025-03-11 08:34:22

2024-04-03 09:18:03

Redis數據結構接口防刷

2022-05-18 07:44:13

自定義菜單前端

2009-09-07 22:00:15

LINQ自定義

2023-09-12 13:59:41

OpenAI數據集

2022-11-01 11:15:56

接口策略模式

2020-11-25 11:20:44

Spring注解Java
點贊
收藏

51CTO技術棧公眾號

亚洲色偷偷色噜噜狠狠99网| 91精品国产毛片武则天| 中文字幕第315页| 亚洲精品一二三区区别| 亚洲成人激情视频| 啊啊啊国产视频| 日本乱理伦在线| 久久久蜜桃精品| 91精品在线观看视频| 日韩精品国产一区二区| 不卡日本视频| 亚洲国产天堂网精品网站| 天天操天天爱天天爽| xxx.xxx欧美| 亚洲国产精品成人综合 | 国产视频亚洲精品| 超碰人人草人人| 日韩免费福利视频| 亚洲大片精品永久免费| 中文精品视频一区二区在线观看| 头脑特工队2免费完整版在线观看| 卡一卡二国产精品 | 中文字幕久精品免费视频| aaa黄色大片| 在线视频成人| 欧美天堂一区二区三区| 波多野结衣综合网| aa在线视频| 成人欧美一区二区三区在线播放| 欧美一区二区三区电影在线观看| 你懂的网站在线| 强制捆绑调教一区二区| 日本不卡视频在线播放| 久草视频精品在线| 牛夜精品久久久久久久99黑人| 在线播放国产精品| 亚洲自拍偷拍一区二区| 秋霞蜜臀av久久电影网免费 | www.久久com| 丁香久久综合| 欧美私模裸体表演在线观看| 99视频免费播放| bl在线肉h视频大尺度| 亚洲免费在线看| 天天干天天色天天爽| 欧美日韩xx| 亚洲素人一区二区| 992tv成人免费观看| 精品麻豆一区二区三区| 成人欧美一区二区三区小说 | 欧美一二三四在线| 特级黄色片视频| 欧美在线在线| 欧美大片日本大片免费观看| 中文字幕在线视频一区二区| 国产成人免费av一区二区午夜| 欧美美女网站色| www.桃色.com| 日韩中文字幕视频网| 日韩欧美你懂的| 国产精品一区二区在线免费观看| 国产精品玖玖玖在线资源| 亚洲成人av资源网| 久久久久国产精品区片区无码| 在线亚洲a色| 中文国产亚洲喷潮| 久久国产波多野结衣| 欧美在线网站| 国产91精品久久久久久| 在线观看黄网站| 日韩精品1区2区3区| 国产精品一区二区久久国产| 91亚洲精品国偷拍自产在线观看| 国产成人一级电影| 久久久99爱| 蜜芽在线免费观看| 亚洲自拍偷拍图区| 亚洲熟妇av一区二区三区| 欧美xxxx做受欧美护士| 91精品在线麻豆| 中文字幕一区三区久久女搜查官| 国产成人精品一区二区免费看京| 色婷婷久久av| 日韩熟女精品一区二区三区| 丝袜美腿亚洲一区| 亚洲精品欧美一区二区三区| 少妇荡乳情欲办公室456视频| 久久久久久久综合日本| 91免费视频黄| 一个人看的www视频在线免费观看 一个人www视频在线免费观看 | 99在线视频精品| 日韩国产高清一区| 新版中文在线官网| 欧美在线看片a免费观看| 日本女人黄色片| 久操成人av| 欧美日韩成人在线视频| 一级黄色在线观看| 成人丝袜视频网| 亚洲成人一区二区三区| 波多一区二区| 宅男在线国产精品| 国产精品jizz| 狠色狠色综合久久| 国产精品主播视频| 色播色播色播色播色播在线| 亚洲情趣在线观看| 日韩 欧美 高清| 99热这里只有精品首页 | 精品国产乱码久久久久久影片| av电影在线不卡| 在线欧美不卡| 99久久99久久精品国产片| 高清日韩av电影| 欧美日韩午夜剧场| 中文字幕永久免费| 天天综合一区| 国产精品你懂得| 欧洲毛片在线| 五月婷婷久久丁香| 三级网站免费看| 91精品啪在线观看国产18| 国产经典一区二区| 三级在线电影| 精品久久香蕉国产线看观看亚洲| 国内av免费观看| 婷婷精品进入| 成人免费福利视频| 91大神在线网站| 欧美视频一区在线| 人妻少妇无码精品视频区| 亚洲神马久久| 久久久久久久久一区| 黄色aa久久| 亚洲国产免费av| 日本亚洲欧美在线| 成人午夜在线播放| 久久久久久久9| 911精品国产| 久久久久成人精品| 人妻va精品va欧美va| 亚洲国产三级在线| 欧美在线一级片| 99亚洲伊人久久精品影院红桃| 国产v亚洲v天堂无码| av丝袜在线| 日韩av综合中文字幕| 日韩久久中文字幕| 久久青草欧美一区二区三区| 国产一区亚洲二区三区| 欧美精品一区二区久久| 国产精品手机播放| 岛国中文字幕在线| 欧美变态口味重另类| 久久精品无码人妻| 99精品久久久久久| 国产黄色特级片| 成人精品中文字幕| 成人精品久久久| 欧美日韩经典丝袜| 日韩精品在线免费观看视频| 黄色网址中文字幕| 国产精品久久久久久久久免费相片| 手机av在线免费| 中文精品久久| 狠狠色伊人亚洲综合网站色| 日本免费久久| www.日本久久久久com.| www黄色网址| 五月天欧美精品| 五月天精品视频| 久久国产福利国产秒拍| av 日韩 人妻 黑人 综合 无码| 哺乳一区二区三区中文视频| 日本高清不卡在线| 黄网站免费在线播放| 精品国精品自拍自在线| 亚洲 欧美 中文字幕| 中文字幕一区三区| 理论片大全免费理伦片| 秋霞电影一区二区| av无码久久久久久不卡网站| 亚洲深夜福利在线观看| 国产日韩在线一区| av在线最新| 色悠悠久久久久| 天堂在线资源网| 欧美日韩亚洲综合在线 | 日本中文不卡| 视频一区日韩精品| 日本久久久久久久| 日韩av毛片| 中文字幕一区二区三区电影| 六月丁香综合网| 欧美日韩一卡二卡三卡| 日本系列第一页| 中文字幕日韩一区| 丝袜美腿中文字幕| 国产成人综合视频| 91啪国产在线| 福利视频一区二区三区四区| 欧美视频三区| 日本中文字幕成人| 性欧美ⅴideo另类hd| 一区二区三区国产视频| 人人妻人人澡人人爽久久av| 欧美日韩久久久久久| 日韩成年人视频| 亚洲三级理论片| 亚洲精品国产熟女久久久| 粉嫩一区二区三区性色av| 亚洲免费一级视频| 久久成人亚洲| 久久久久久久久久久99| 亚洲有吗中文字幕| 午夜精品一区二区三区在线观看| 精品视频高潮| 成人精品一二区| 成人免费91| 国产一区二区丝袜| 国产综合av| 欧美一级片免费在线| 天堂8中文在线| 久久九九国产精品怡红院 | 日韩在线资源网| 在线观看xxx| 精品欧美乱码久久久久久1区2区 | 欧美影视资讯| 日本欧美在线视频| 天堂中文在线播放| 97国产成人精品视频| 超碰97免费在线| 久久久久久久色| 91禁在线看| 欧美高清视频在线播放| 里番在线播放| 欧美黑人性生活视频| 手机在线免费看av| 欧美日韩高清在线观看| 少女频道在线观看免费播放电视剧| 色婷婷综合久久久久| 免费网站黄在线观看| 久久久成人精品| а√天堂官网中文在线| 欧美大片免费看| 黄网av在线| 97人人爽人人喊人人模波多| 国产夫妻在线播放| 欧美中文在线视频| 日韩免费小视频| 国产精品丝袜久久久久久不卡| 日本精品在线中文字幕| 国产精品视频男人的天堂| 日本欧美在线| 91久久国产自产拍夜夜嗨| 亚洲综合网站| 精品久久精品久久| 美女精品一区最新中文字幕一区二区三区 | 黄色一级视频片| 老色鬼久久亚洲一区二区| 在线观看的毛片| 韩国视频一区二区| 日本不卡视频一区| www精品美女久久久tv| 精品无码在线观看| 亚洲日本乱码在线观看| 久久综合综合久久| 色综合天天性综合| 中文字幕网址在线| 日韩欧美一区二区久久婷婷| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 中文字幕一区二区三区四区不卡 | 成人免费视频网| 国产色噜噜噜91在线精品 | 超碰97人人干| 中文字幕一区二区三区在线不卡 | 欧洲精品在线观看| 国产按摩一区二区三区| 日韩电影中文字幕一区| 免费在线看黄| 欧美尤物巨大精品爽| 91成人在线网站| 久久草视频在线看| 久久久久免费av| 男人揉女人奶房视频60分| 久久黄色级2电影| 午夜剧场免费看| 国产精品视频一二三区| 久久亚洲AV无码| 欧美伊人久久久久久久久影院 | 亚洲精品97久久| 欧美三级黄网| 欧美在线视频导航| 久久视频免费| 日韩av一区二区三区在线| 欧美日韩亚洲国产精品| 日本新janpanese乱熟| 国产乱码精品一区二区三区五月婷| 91精品国产自产| 亚洲女女做受ⅹxx高潮| 黄色一级视频免费看| 日韩精品资源二区在线| 91短视频版在线观看www免费| 4438全国成人免费| 欧美精品三级在线| 在线不卡视频一区二区| 免播放器亚洲| 91九色蝌蚪porny| 亚洲免费三区一区二区| 欧美在线视频精品| 亚洲免费精彩视频| 国产后进白嫩翘臀在线观看视频| 国产欧美久久久久久| 国产亚洲一区二区三区不卡| 日韩精品 欧美| 国产成人午夜精品影院观看视频| 中文字幕第69页| 色婷婷综合久久久久中文一区二区| 欧美 日韩 国产 在线| 久久香蕉国产线看观看网| 国产成人久久精品麻豆二区| 欧美日韩在线精品| 亚洲视频1区| www.啪啪.com| 亚洲一区中文日韩| 亚洲美女综合网| 欧美日韩不卡合集视频| 日本精品在线观看| 国产免费xxx| 久久99国产精品久久99 | 天天综合网 天天综合色| 亚洲精品喷潮一区二区三区| 欧美成人激情图片网| 日本午夜免费一区二区| 亚洲视频sss| 久久99久久久欧美国产| 亚洲女人毛茸茸高潮| 欧美在线播放高清精品| 成年人在线观看| 国产精品丝袜一区二区三区| 清纯唯美日韩| 中国黄色片免费看| 国产精品久久久久aaaa樱花 | 欧美××××黑人××性爽| 美国av一区二区三区 | 国内自拍第二页| 亚洲女同一区二区| 粉嫩av一区二区夜夜嗨| 久久久久久久国产| 欧美日韩另类图片| 成人免费观看毛片| 久久精品视频在线看| 中文字幕av影视| 久久久999国产| 亚洲国产中文在线二区三区免| 亚洲 欧美 综合 另类 中字| 成人午夜电影久久影院| 久久久久久久久久久久久av| 精品亚洲aⅴ在线观看| 日韩欧美一区二区三区在线观看| 亚洲欧美日韩精品久久久| 国产伦理精品不卡| 成年人免费看毛片| 国产亚洲欧洲在线| www.欧美视频| 国产精品专区在线| 久久九九久精品国产免费直播| 91精品人妻一区二区三区果冻| 久久偷看各类女兵18女厕嘘嘘| 国产精品22p| 日韩视频免费在线播放| 亚洲色图欧美激情| 色一情一乱一乱一区91av| 国产成人一区二| 91精品国产91久久久久久黑人| 无码国产精品一区二区免费式直播| 精品久久久久久久久久| 91精品专区| 国内一区二区三区在线视频| 日韩高清在线不卡| 国产大学生自拍| 亚洲人成在线播放| 国产一区二区久久久久| 哪个网站能看毛片| 亚洲男人电影天堂| 日韩电影免费| 99re在线视频观看| 可以看av的网站久久看| 久久久精品国产sm调教网站| 亚洲丝袜av一区| 国产精品网址| 一区二区在线免费看| 五月婷婷综合激情| 成人短视频在线观看| 欧美国产一区二区在线| 国产电影精品久久禁18| 在线观看国产黄| 欧美在线视频网站| 欧美99久久| 国产3级在线观看|