99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

3種常見的數(shù)據(jù)脫敏方案

0
分享至

點擊關(guān)注公眾號,實用技術(shù)文章及時了解


目錄

  1. SQL數(shù)據(jù)脫敏實現(xiàn)

  2. JAVA數(shù)據(jù)脫敏實現(xiàn)

  3. mybatis-mate-sensitive-jackson

1.SQL數(shù)據(jù)脫敏實現(xiàn)

MYSQL(電話號碼,身份證)數(shù)據(jù)脫敏的實現(xiàn)

-- CONCAT()、LEFT()和RIGHT()字符串函數(shù)組合使用,請看下面具體實現(xiàn)
 
-- CONCAT(str1,str2,…):返回結(jié)果為連接參數(shù)產(chǎn)生的字符串
-- LEFT(str,len):返回從字符串str 開始的len 最左字符
-- RIGHT(str,len):從字符串str 開始,返回最右len 字符
 
-- 電話號碼脫敏sql:
 
SELECT mobilePhone AS 脫敏前電話號碼,CONCAT(LEFT(mobilePhone,3), '********' ) AS 脫敏后電話號碼 FROM t_s_user
 
-- 身份證號碼脫敏sql:
 
SELECT idcard AS 未脫敏身份證, CONCAT(LEFT(idcard,3), '****' ,RIGHT(idcard,4)) AS 脫敏后身份證號 FROM t_s_user
2.JAVA數(shù)據(jù)脫敏實現(xiàn)

可參考:海強 / sensitive-plus

https://gitee.com/strong_sea/sensitive-plus

數(shù)據(jù)脫敏插件,目前支持地址脫敏、銀行卡號脫敏、中文姓名脫敏、固話脫敏、身份證號脫敏、手機號脫敏、密碼脫敏 一個是正則脫敏、另外一個根據(jù)顯示長度脫敏,默認是正則脫敏,可以根據(jù)自己的需要配置自己的規(guī)則。

3.mybatis-mate-sensitive-jackson

mybatisplus 的新作,可以測試使用,生產(chǎn)需要收費。

根據(jù)定義的策略類型,對數(shù)據(jù)進行脫敏,當然策略可以自定義。

# 目前已有
package mybatis.mate.strategy;
 
public interface SensitiveType {
    String chineseName = "chineseName";
    String idCard = "idCard";
    String phone = "phone";
    String mobile = "mobile";
    String address = "address";
    String email = "email";
    String bankCard = "bankCard";
    String password = "password";
    String carNumber = "carNumber";
}

Demo 代碼目錄


1、pom.xml

             
     
                
         
                  
 com.baomidou groupId>         
                    
 mybatis-mate-examples artifactId>         
                      
 0.0.1-SNAPSHOT version>      parent>     
                        
 4.0.0 modelVersion>     
                          
 mybatis-mate-sensitive-jackson artifactId>     
                            
         
                              
             
                                
 mysql groupId>             
                                  
 mysql-connector-java artifactId>          dependency>      dependencies>   project>
                 
                
               
              
             
            
           
          
         
        
      

2、appliation.yml

# DataSource Config
spring:
  datasource:
#    driver-class-name: org.h2.Driver
#    schema: classpath:db/schema-h2.sql
#    data: classpath:db/data-h2.sql
#    url: jdbc:h2:mem:test
#    username: root
#    password: test
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis_mate?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: 123456
# Mybatis Mate 配置
mybatis-mate:
  cert:
    # 請?zhí)砑游⑿舧x153666購買授權(quán),不白嫖從我做起! 測試證書會失效,請勿正式環(huán)境使用
    grant: thisIsTestLicense
    license: as/bsBaSVrsA9FfjC/N77ruEt2/QZDrW+MHETNuEuZBra5mlaXZU+DE1ZvF8UjzlLCpH3TFVH3WPV+Ya7Ugiz1Rx4wSh/FK6Ug9lhos7rnsNaRB/+mR30aXqtlLt4dAmLAOCT56r9mikW+t1DDJY8TVhERWMjEipbqGO9oe1fqYCegCEX8tVCpToKr5J1g1V86mNsNnEGXujnLlEw9jBTrGxAyQroD7Ns1Dhwz1K4Y188mvmRQp9t7OYrpgsC7N9CXq1s1c2GtvfItHArkqHE4oDrhaPjpbMjFWLI5/XqZDtW3D+AVcH7pTcYZn6vzFfDZEmfDFV5fQlT3Rc+GENEg==
 
# Logger Config
logging:
  level:
    mybatis.mate: debug

3、Appliation啟動類

package mybatis.mate.sensitive.jackson;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class SensitiveJacksonApplication {
 
    // 測試訪問 http://localhost:8080/info ,http://localhost:8080/list
    public static void main(String[] args) {
        SpringApplication.run(SensitiveJacksonApplication.class, args);
    }
}

4、配置類,自定義脫敏策略

package mybatis.mate.sensitive.jackson.config;
 
import mybatis.mate.databind.ISensitiveStrategy;
import mybatis.mate.strategy.SensitiveStrategy;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class SensitiveStrategyConfig {
 
    /**      * 注入脫敏策略      */
    @Bean
    public ISensitiveStrategy sensitiveStrategy() {
        // 自定義 testStrategy 類型脫敏處理
        return new SensitiveStrategy().addStrategy("testStrategy", t -> t + "***test***");
    }
}

5、業(yè)務類

User,注解標識脫敏字段,及選用脫敏策略

package mybatis.mate.sensitive.jackson.entity;
 
import lombok.Getter;
import lombok.Setter;
import mybatis.mate.annotation.FieldSensitive;
import mybatis.mate.sensitive.jackson.config.SensitiveStrategyConfig;
import mybatis.mate.strategy.SensitiveType;
 
@Getter
@Setter
public class User {
    private Long id;
    /**      * 這里是一個自定義的策略 {@link SensitiveStrategyConfig} 初始化注入      */
    @FieldSensitive("testStrategy")
    private String username;
    /**      * 默認支持策略 {@link SensitiveType }      */
    @FieldSensitive(SensitiveType.mobile)
    private String mobile;
    @FieldSensitive(SensitiveType.email)
    private String email;
 
}

UserController

package mybatis.mate.sensitive.jackson.controller;
 
import mybatis.mate.databind.ISensitiveStrategy;
import mybatis.mate.databind.RequestDataTransfer;
import mybatis.mate.sensitive.jackson.entity.User;
import mybatis.mate.sensitive.jackson.mapper.UserMapper;
import mybatis.mate.strategy.SensitiveType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
@RestController
public class UserController {
    @Autowired
    private UserMapper userMapper;
    @Autowired
    private ISensitiveStrategy sensitiveStrategy;
 
    // 測試訪問 http://localhost:8080/info
    @GetMapping("/info")
    public User info() {
        return userMapper.selectById(1L);
    }
 
    // 測試返回 map 訪問 http://localhost:8080/map
    @GetMapping("/map")
    public Map   map ()  {
        // 測試嵌套對象脫敏
        Map
      
  userMap =  new HashMap<>();         userMap.put( "user", userMapper.selectById( 1L));         userMap.put( "test",  123);         userMap.put( "userMap",  new HashMap () {{             put("user2", userMapper.selectById(2L));             put("test2", "hi china");         }});          // 手動調(diào)用策略脫敏         userMap.put( "mobile", sensitiveStrategy.getStrategyFunctionMap()                 .get(SensitiveType.mobile).apply( "15315388888"));          return userMap;     }        // 測試訪問 http://localhost:8080/list      // 不脫敏 http://localhost:8080/list?skip=1      @GetMapping( "/list")      public List   list (HttpServletRequest request)  {          if ( "1".equals(request.getParameter( "skip"))) {              // 跳過脫密處理             RequestDataTransfer.skipSensitive();         }          return userMapper.selectList( null);     } }

UserMapper

package mybatis.mate.sensitive.jackson.mapper;
 
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import mybatis.mate.sensitive.jackson.entity.User;
import org.apache.ibatis.annotations.Mapper;
 
@Mapper
public interface UserMapper extends BaseMapper
             
  {   }
      

6、測試

GET http://localhost:8080/list

[
  {
    "id": 1,
    "username": "Jone***test***",
    "mobile": "153******81",
    "email": "t****@baomidou.com"
  },
  {
    "id": 2,
    "username": "Jack***test***",
    "mobile": "153******82",
    "email": "t****@baomidou.com"
  },
  {
    "id": 3,
    "username": "Tom***test***",
    "mobile": "153******83",
    "email": "t****@baomidou.com"
  }
]

GET http://localhost:8080/list?skip=1

[
  {
    "id": 1,
    "username": "Jone",
    "mobile": "15315388881",
    "email": "test1@baomidou.com"
  },
  {
    "id": 2,
    "username": "Jack",
    "mobile": "15315388882",
    "email": "test2@baomidou.com"
  },
  {
    "id": 3,
    "username": "Tom",
    "mobile": "15315388883",
    "email": "test3@baomidou.com"
  }
]

來源:https://blog.csdn.net/weixin_61594803

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
正式攤牌?成都蓉城召開工作會議,泄露重要信息:球隊真沒錢了

正式攤牌?成都蓉城召開工作會議,泄露重要信息:球隊真沒錢了

國足風云
2025-07-23 14:23:47
周恩來祭拜孫中山,得知守靈人20年未發(fā)餉,總理問:他給你多少錢

周恩來祭拜孫中山,得知守靈人20年未發(fā)餉,總理問:他給你多少錢

與史說
2025-07-23 12:12:43
7月23日人社部發(fā)布會!養(yǎng)老金調(diào)整塵埃落定,部分地區(qū)已補發(fā)

7月23日人社部發(fā)布會!養(yǎng)老金調(diào)整塵埃落定,部分地區(qū)已補發(fā)

娛樂看阿敞
2025-07-23 10:22:05
宗慶后被曝有7子,看了宗馥莉為他立的墓碑,才知道她早就布局了

宗慶后被曝有7子,看了宗馥莉為他立的墓碑,才知道她早就布局了

麥大人
2025-07-18 12:05:16
他曾是東方衛(wèi)視最帥主持人,巔峰期入獄,多年奮斗歸零

他曾是東方衛(wèi)視最帥主持人,巔峰期入獄,多年奮斗歸零

雄哥說職場
2025-07-22 20:03:54
結(jié)束流浪!25歲菲利克斯三賽季5次換隊,1億身價的金童僅剩2000萬

結(jié)束流浪!25歲菲利克斯三賽季5次換隊,1億身價的金童僅剩2000萬

直播吧
2025-07-23 14:46:08
中紀委:醫(yī)務人員禁止參加這20種飯局!

中紀委:醫(yī)務人員禁止參加這20種飯局!

康迅網(wǎng)
2025-07-23 16:37:07
雅魯藏布江水電工程僅離中印實控線18公里,難道不怕被印度攻擊?

雅魯藏布江水電工程僅離中印實控線18公里,難道不怕被印度攻擊?

龍牙的一座山
2025-07-23 12:05:25
四川全運女籃公布球隊大名單:李夢、韓旭、王思雨、李緣、賈賽琪等國手云集

四川全運女籃公布球隊大名單:李夢、韓旭、王思雨、李緣、賈賽琪等國手云集

雷速體育
2025-07-23 15:41:06
必須殺一儆百!中企勾結(jié)美國軍工偷運3834噸稀土,重拳整治啟動!

必須殺一儆百!中企勾結(jié)美國軍工偷運3834噸稀土,重拳整治啟動!

娛樂洞察點點
2025-07-23 10:07:57
我軍頂級的軍事天才只有一人,他打的仗,西點軍校復盤也打不出來

我軍頂級的軍事天才只有一人,他打的仗,西點軍校復盤也打不出來

南書房
2025-07-20 20:55:03
江蘇“跑圈女神”牟燕飛去世!年僅38歲仨孩子,前后半年判若兩人

江蘇“跑圈女神”牟燕飛去世!年僅38歲仨孩子,前后半年判若兩人

裕豐娛間說
2025-07-21 10:03:18
保羅更新個人社媒曬出一個“握手”表情,感謝比爾將3號球衣讓給自己

保羅更新個人社媒曬出一個“握手”表情,感謝比爾將3號球衣讓給自己

雷速體育
2025-07-23 07:52:35
湖南桂陽衛(wèi)健局:4歲男童拔牙死亡涉事醫(yī)生停崗

湖南桂陽衛(wèi)健局:4歲男童拔牙死亡涉事醫(yī)生停崗

界面新聞
2025-07-23 16:46:52
為驗證祖先是中國人,6名南島語族后人駕獨木舟,航行116天來中國

為驗證祖先是中國人,6名南島語族后人駕獨木舟,航行116天來中國

博覽歷史
2025-07-22 15:20:03
思考16天后,李在明決定見中方,還給俄方遞請?zhí)站┯锌谛艂鬟_

思考16天后,李在明決定見中方,還給俄方遞請?zhí)站┯锌谛艂鬟_

歷史有些冷
2025-07-22 17:55:03
央視曝光!你以為沒壞實際早已“細菌爆表”的5種食物,趕緊扔了

央視曝光!你以為沒壞實際早已“細菌爆表”的5種食物,趕緊扔了

阿傖說事
2025-07-22 08:00:09
果然被猜中了!江蘇丹陽兩條杜賓犬飛撲幼童,警方:已妥善處理

果然被猜中了!江蘇丹陽兩條杜賓犬飛撲幼童,警方:已妥善處理

奇思妙想草葉君
2025-07-22 14:44:34
今年高考錄取:文科遍地哀嚎,清北也不例外!鐵飯碗專業(yè)被捧上天

今年高考錄取:文科遍地哀嚎,清北也不例外!鐵飯碗專業(yè)被捧上天

狐貍先森講升學規(guī)劃
2025-07-20 18:55:03
搞笑神回復:被求婚8次都沒答應,后來收到了男友的結(jié)婚喜訊!

搞笑神回復:被求婚8次都沒答應,后來收到了男友的結(jié)婚喜訊!

石辰搞笑日常
2025-07-23 01:17:18
2025-07-23 20:04:49
Meta
Meta
關(guān)注java進階架構(gòu)師送架構(gòu)
1059文章數(shù) 9856關(guān)注度
往期回顧 全部

科技要聞

別自嗨了!XREAL徐馳:AI眼鏡只有5歲智商

頭條要聞

印度、孟加拉關(guān)切雅魯藏布江下游水電站工程 中方回應

頭條要聞

印度、孟加拉關(guān)切雅魯藏布江下游水電站工程 中方回應

體育要聞

英格蘭最紅球星 也是加勒比島國驕傲

娛樂要聞

汪峰森林北同游日本 各帶各娃互不耽誤

財經(jīng)要聞

律師解析娃哈哈遺產(chǎn)案:遺囑是最大變數(shù)

汽車要聞

德系大招放盡 場地極限測試全新奧迪A5L

態(tài)度原創(chuàng)

家居
旅游
本地
房產(chǎn)
公開課

家居要聞

晨曦生活 明媚而放松

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

本地新聞

這雙丑鞋“泰”辣眼,跪求內(nèi)娛不要抄作業(yè)

房產(chǎn)要聞

海南自由貿(mào)易港全島封關(guān),2025年12月18日正式啟動!

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關(guān)懷版 主站蜘蛛池模板: 辛集市| 乐清市| 松桃| 罗定市| 临洮县| 吴川市| 五家渠市| 盐边县| 汝州市| 南部县| 弥勒县| 武功县| 萨嘎县| 武威市| 南华县| 独山县| 噶尔县| 吉首市| 龙州县| 扶绥县| 通化县| 石柱| 钟山县| 边坝县| 安岳县| 得荣县| 津市市| 南昌县| 东平县| 东城区| 黄陵县| 阳山县| 寻乌县| 海门市| 藁城市| 莱西市| 顺平县| 河间市| 巢湖市| 游戏| 西充县|