一、什麼是數據脫敏?
數據脫敏(Data Masking),又稱數據漂白、數據去隱私化或數據變形。
百度百科對數據脫敏的定義為:指對某些敏感信息通過脫敏規則進行數據的變形,實現敏感隱私數據的可靠保護。在涉及客戶安全數據或者一些商業性敏感數據的情況下,在不違反系統規則條件下,對真實數據進行改造並提供測試使用,如身份證號、手機號、卡號、客戶號等個人信息都需要進行數據脫敏。
生活中不乏數據脫敏的例子,比如我們最常見的火車票、電商收貨人地址都會對敏感信息做處理,甚至女同志較熟悉的美顏、有些視頻中的馬賽克都屬於脫敏。
![數據脫敏——什麼是數據脫敏](http://p2.ttnews.xyz/loading.gif)
二、為什麼要進行數據脫敏?
上面說到,在“涉及客戶安全數據或者一些商業性敏感數據的情況下”對數據進行改造,說明我們要進行改造的數據是涉及到用戶或者企業數據的安全,進行數據脫敏其實就是對這些數據進行加密,防止洩露。
對於脫敏的程度,一般來說只要處理到無法推斷原有的信息,不會造成信息洩露即可,如果修改過多,容易導致丟失數據原有特性。因此,在實際操作中,需要根據實際場景來選擇適當的脫敏規則。改姓名,身份證號,地址,手機號,電話號碼等幾個客戶相關字段。
三、如何實現數據脫敏
按照脫敏規則,可以分為可恢復性脫敏和不可恢復性脫敏。可恢復性脫敏就是數據經過脫敏規則的轉化後,還再次可以經過某些處理還原出原來的數據,相反,數據經過不可恢復性脫敏之後,將無法還原到原來的樣子,可以把二者分別看做可逆加密和不可逆加密。
我們目前遇到的場景是日誌脫敏,即在把日誌中的密碼,甚至姓名、身份證號等信息都進行脫敏處理。
脫敏前:
![數據脫敏——什麼是數據脫敏](http://p2.ttnews.xyz/loading.gif)
脫敏後:
如上圖,仔細分析會發現,打日誌之前,獲得脫敏的數據就兩個步驟:【拿到要輸入的數據(user實體)】→【進行序列化】,所以要進行數據脫敏可以考慮在這兩個步驟上進行實現。第一個方法就是在序列化實體之前先把需要脫敏的字段進行處理,之後正常序列化;第二個方法就是在實體序列化的時候,對要脫敏的字段進行處理。
後面來分享一下具體實現數據脫敏的方法。
原文:https://blog.csdn.net/huyuyang6688/article/details/77689459
閱讀更多 java進階架構師 的文章