成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據脫敏的六種方案,真香!

數據庫 其他數據庫
這篇文章給大家分享6種常用的數據脫敏方案,希望對你會有所幫助。

前言

某次新來的同事,在開發環境執行了這樣的代碼:

// 反例:直接將生產數據同步到測試環境  
public void syncUserToTest(User user) {  
    testDB.insert(user); // 包含手機號、身份證等敏感字段  
}

直接將生產的數據,比如:手機號、身份證等敏感字段,同步到了測試環境。

結果1天后,受到了公司領導的批評。

這個案例揭示了數據脫敏的極端重要性。

這篇文章給大家分享6種常用的數據脫敏方案,希望對你會有所幫助。

方案1:字符串替換(青銅級)

技術原理:通過正則表達式對敏感數據進行部分字符替換

典型代碼實現

public class StringMasker {  
    // 手機號脫敏:13812345678 → 138****5678  
    public static String maskMobile(String mobile) {  
        return mobile.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");  
    }  

    // 身份證脫敏:110101199003077777 → 1101********7777  
    public static String maskIdCard(String idCard) {  
        if (idCard.length() == 18) {  
            return idCard.replaceAll("(\\d{4})\\d{10}(\\w{4})", "$1****$2");  
        }  
        return idCard; // 處理15位舊身份證  
    }  
}

使用正則表達式將關鍵字字段替換成了*

適用場景對比

圖片圖片

優缺點分析

  • ? 優點:實現簡單、性能高(時間復雜度O(n))
  • ? 缺點:
  • 無法恢復原始數據
  • 正則表達式需考慮多國數據格式差異
  • 存在模式被破解風險(如固定位置替換)

方案2:加密算法(白銀級)

加密算法選型

算法類型

代表算法

特點

適用場景

對稱加密

AES

加解密快,密鑰管理復雜

支付信息存儲

非對稱加密

RSA

速度慢,安全性高

密鑰交換

國密算法

SM4

符合國家標準

政府/金融系統

完整實現示例

public class AESEncryptor {  
    privatestaticfinal String ALGORITHM = "AES/GCM/NoPadding";  
    privatestaticfinalint TAG_LENGTH = 128; // 認證標簽長度  

    public static String encrypt(String plaintext, SecretKey key) {  
        byte[] iv = newbyte[12]; // GCM推薦12字節IV  
        SecureRandom random = new SecureRandom();  
        random.nextBytes(iv);  

        Cipher cipher = Cipher.getInstance(ALGORITHM);  
        cipher.init(Cipher.ENCRYPT_MODE, key, new GCMParameterSpec(TAG_LENGTH, iv));  

        byte[] ciphertext = cipher.doFinal(plaintext.getBytes(StandardCharsets.UTF_8));  
        return Base64.getEncoder().encodeToString(iv) + ":" +  
               Base64.getEncoder().encodeToString(ciphertext);  
    }  

    // 解密方法類似...  
}

密鑰管理方案對比

圖片圖片

方案3:數據遮蔽(黃金級)

數據庫層實現數據遮蔽

-- 創建脫敏視圖  
CREATE VIEW masked_customers AS  
SELECT  
    id,  
    CONCAT(SUBSTR(name,1,1), '***') AS name,  
    CONCAT(SUBSTR(mobile,1,3), '****', SUBSTR(mobile,8,4)) AS mobile  
FROM customers;  

-- 使用列級權限控制  
GRANT SELECT (id, name, mobile) ON masked_customers TO test_user;

創建數據脫敏視圖,在視圖中將關鍵字段做遮蔽。

然后在后面需要用到這些字段的代碼,需要統一從視圖中查詢數據。

代理層實現(ShardingSphere示例)

rules:  
-!MASK
tables:
    user:
      columns:
        phone:
          maskAlgorithm:phone_mask
maskAlgorithms:
    phone_mask:
      type:MD5
      props:
        salt:abcdefg123456

性能影響測試數據

數據量

原始查詢(ms)

遮蔽查詢(ms)

性能損耗

10萬

120

145

20.8%

100萬

980

1150

17.3%

1000萬

10500

12200

16.2%

方案4:數據替換(鉑金級)

將原始數據和脫敏的數據保存到cache中,方便后面快速的做轉換。

映射表設計

// 使用Guava Cache實現LRU緩存  
LoadingCache<String, String> dataMapping = CacheBuilder.newBuilder()  
    .maximumSize(100000)  
    .expireAfterAccess(30, TimeUnit.MINUTES)  
    .build(new CacheLoader<String, String>() {  
        public String load(String key) {  
            return UUID.randomUUID().toString().replace("-", "");  
        }  
    });  

public String replaceData(String original) {  
    return dataMapping.get(original);  
}

替換流程

圖片圖片

方案5:動態脫敏(鉆石級)

應用層實現(Spring AOP示例)

@Aspect  
@Component
publicclass DataMaskAspect {  

    @Around("@annotation(requiresMasking)")  
    public Object maskData(ProceedingJoinPoint joinPoint, RequiresMasking requiresMasking) throws Throwable {  
        Object result = joinPoint.proceed();  
        return mask(result, requiresMasking.type());  
    }  

    private Object mask(Object data, MaskType type) {  
        if (data instanceof User) {  
            User user = (User) data;  
            switch(type) {  
                case MOBILE:  
                    user.setMobile(MaskUtil.maskMobile(user.getMobile()));  
                    break;  
                case ID_CARD:  
                    user.setIdCard(MaskUtil.maskIdCard(user.getIdCard()));  
                    break;  
            }  
        }  
        return data;  
    }  
}

在需要做數據脫敏的字段上技術RequiresMasking注解,然后在Spring的AOP攔截器中,通過工具類動態實現數據的脫敏。

數據庫代理層架構

圖片圖片

方案6:K匿名化(王者級)

1. 通俗原理解釋

假設醫院發布就診數據:

年齡

性別

疾病

25

感冒

25

發燒

25

骨折

當K=3時,攻擊者無法確定具體某人的疾病,因為3人都具有相同特征(25歲男性)。

2. 實現步驟

圖片圖片

醫療數據泛化示例

public class KAnonymity {  

    // 年齡泛化:精確值→范圍  
    public static String generalizeAge(int age) {  
        int range = 10; // K=10  
        int lower = (age / range) * range;  
        int upper = lower + range - 1;  
        return lower + "-" + upper;  
    }  
}

假設range是K值,等于10。

generalizeAge方法中,通過一定的算法,將年齡的精確值,泛化成一個區間范圍。

輸入年齡28,返回20-29。

K值選擇原則

圖片圖片

總結

方案

安全性

性能

可逆性

適用場景

字符串替換

★★

★★★★

不可逆

日志/展示

加密算法

★★★★

★★

可逆

支付信息存儲

數據遮蔽

★★★

★★★

部分可逆

數據庫查詢

數據替換

★★★★

★★

可逆

測試數據生成

動態脫敏

★★★★

★★★

動態可控

生產環境查詢

K匿名化

★★★★★

不可逆

醫療/位置數據

下面是某電商平臺各方案的使用占比:

圖片圖片

蘇三的3個核心建議

  1. 數據分類分級:不同級別數據采用不同脫敏策略
  2. 定期審計:使用自動化工具掃描敏感數據泄露
  3. 最小化原則:能不收集的敏感數據堅決不收集

靈魂拷問:當黑客攻破你的數據庫時,里面的數據是否像諾基亞功能機一樣"防摔"?

安全大禮包

  • 敏感數據掃描工具
  • 脫敏策略檢查表
  • 數據安全架構白皮書
責任編輯:姜華 來源: 蘇三說技術
相關推薦

2025-01-02 08:21:32

2025-05-06 00:00:05

MySQLES協同

2019-01-17 10:58:52

JS異步編程前端

2022-05-24 10:43:02

延時消息分布式MQ

2025-03-17 08:07:11

2011-03-31 14:53:13

數據中心節能

2010-03-15 17:12:52

Python字典

2020-10-14 09:00:00

SAST漏洞攻擊

2023-09-06 08:00:00

ChatGPT數據分析

2023-08-15 15:44:55

React開發

2017-06-26 10:35:58

前端JavaScript繼承方式

2023-06-01 16:45:11

React開發JavaScript

2021-07-29 09:00:00

Python工具機器學習

2021-12-10 13:08:31

數據倉庫BI數據存儲

2022-01-11 18:21:11

存儲技術數據

2022-05-25 09:55:40

數據重復提交Java

2018-04-27 15:02:10

2022-05-12 09:02:50

編程語言PythonJava

2022-05-08 22:09:28

網絡拓撲網絡技術網絡

2019-05-16 13:00:18

異步編程JavaScript回調函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产黄色在线观看 | 免费在线h视频 | 国产成人免费视频 | 色888www视频在线观看 | 免费精品久久久久久中文字幕 | 国久久 | 日韩成人在线视频 | 999国产精品视频免费 | 91精品国产手机 | 日韩成人免费在线视频 | 91精品国产综合久久精品 | 国产精品视频网 | 亚洲国产免费 | 精品一区二区三区四区五区 | 国产aaaaav久久久一区二区 | 国产男女视频 | 精品亚洲一区二区三区 | 亚洲日日 | 99久久99热这里只有精品 | 久久aⅴ乱码一区二区三区 91综合网 | 国产精品成人一区二区三区 | 国产 日韩 欧美 在线 | 久久精品久久久 | 日韩精品久久久久 | 91香蕉嫩草 | 超碰成人免费 | 视频一二三区 | 午夜精品久久久久久久久久久久久 | 精品一区二区在线视频 | 国产精品久久国产精品 | 国产精品高潮呻吟久久久久 | 曰韩一二三区 | 久久99视频这里只有精品 | 日韩久久久久久久久久久 | 女女百合av大片一区二区三区九县 | 免费一级黄 | 7799精品视频天天看 | 国产高潮好爽受不了了夜色 | 精品国产乱码久久久久久88av | 国产一区二区精品在线 | 国产福利在线 |