国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發(fā) > Java > 正文

java 日志的數(shù)據(jù)脫敏的實現(xiàn)方法

2024-07-14 08:43:24
字體:
來源:轉載
供稿:網友

數(shù)據(jù)脫敏是指對某些敏感信息通過脫敏規(guī)則進行數(shù)據(jù)的變形,實現(xiàn)敏感隱私數(shù)據(jù)的可靠保護。在涉及客戶安全數(shù)據(jù)或者一些商業(yè)性敏感數(shù)據(jù)的情況下,在不違反系統(tǒng)規(guī)則條件下,對真實數(shù)據(jù)進行改造并提供測試使用,如身份證號、手機號、卡號、客戶號等個人信息都需要進行數(shù)據(jù)脫敏,數(shù)據(jù)庫安全技術之一。

比如我們現(xiàn)在有個user表,含有名字,性別,郵箱,電話號碼等字段,但是當查看這些數(shù)據(jù)時,我們又不希望這些數(shù)據(jù)被暴露,這時可以對這些數(shù)據(jù)進行脫敏處理,當然可以根據(jù)需要選擇哪些字段需要脫敏,然后再輸出,至于怎么選擇的,是另外一回事了。

思路

1。在 model層進行處理,直接重寫get方法,在寫一個getPlain 獲取明文方法。(缺點:數(shù)據(jù)庫寫入和json序列化傳遞時使用的都是密文)

2.利用 日志組件過濾 特定的key,去進行脫敏(缺點:對所有的日志輸出全部要正則匹配,非常耗時。)

由1,2的利弊,肯定會選擇1,然后考慮一種實現(xiàn)(在model層定義方法,獲取它的一個復制類,復制類里面的信息都是脫敏的,日志輸出時只輸出 復制對象),克服掉1的缺點 

1.定義接口類

public interface NoSensitiveObj<T> { default T noSensitiveObj(){  return (T) this; }}

2.實現(xiàn)類 如果這個類沒有敏感信息,只實現(xiàn) NoSensitiveObj ,不需要實現(xiàn)里面的方法

public class User implements NoSensitiveObj<User>{ private String name;  private String phone;  private String email; public String getName() {  return name; } public void setName(String name) {  this.name = name; } public String getPhone() {  return phone; } public void setPhone(String phone) {  this.phone = phone; } public String getEmail() {  return email; } public void setEmail(String email) {  this.email = email; } @Override public User noSensitiveObj() {   User t;   t=new User();   t.setEmail(SensitiveInfoUtils.email(email));   t.setName(SensitiveInfoUtils.chineseName(name));   t.setPhone(SensitiveInfoUtils.mobilePhone(phone));  return t; } }

3.工具類

public class SensitiveInfoUtils { /**  * [中文姓名] 只顯示第一個漢字,其他隱藏為2個星號<例子:李**>  */ public static String chineseName(final String fullName) {  if (StringUtils.isBlank(fullName)) {   return "";  }  final String name = StringUtils.left(fullName, 1);  return StringUtils.rightPad(name, StringUtils.length(fullName), "*"); } /**  * [中文姓名] 只顯示第一個漢字,其他隱藏為2個星號<例子:李**>  */ public static String chineseName(final String familyName, final String givenName) {  if (StringUtils.isBlank(familyName) || StringUtils.isBlank(givenName)) {   return "";  }  return chineseName(familyName + givenName); } /**  * [身份證號] 顯示最后四位,其他隱藏。共計18位或者15位。<例子:*************5762>  */ public static String idCardNum(final String id) {  if (StringUtils.isBlank(id)) {   return "";  }  return StringUtils.left(id, 3).concat(StringUtils    .removeStart(StringUtils.leftPad(StringUtils.right(id, 3), StringUtils.length(id), "*"), "***")); } /**  * [固定電話] 后四位,其他隱藏<例子:****1234>  */ public static String fixedPhone(final String num) {  if (StringUtils.isBlank(num)) {   return "";  }  return StringUtils.leftPad(StringUtils.right(num, 4), StringUtils.length(num), "*"); } /**  * [手機號碼] 前三位,后四位,其他隱藏<例子:138******1234>  */ public static String mobilePhone(final String num) {  if (StringUtils.isBlank(num)) {   return "";  }  return StringUtils.left(num, 2).concat(StringUtils    .removeStart(StringUtils.leftPad(StringUtils.right(num, 2), StringUtils.length(num), "*"), "***")); } /**  * [地址] 只顯示到地區(qū),不顯示詳細地址;我們要對個人信息增強保護<例子:北京市海淀區(qū)****>  *  * @param sensitiveSize  *   敏感信息長度  */ public static String address(final String address, final int sensitiveSize) {  if (StringUtils.isBlank(address)) {   return "";  }  final int length = StringUtils.length(address);  return StringUtils.rightPad(StringUtils.left(address, length - sensitiveSize), length, "*"); } /**  * [電子郵箱] 郵箱前綴僅顯示第一個字母,前綴其他隱藏,用星號代替,@及后面的地址顯示<例子:g**@163.com>  */ public static String email(final String email) {  if (StringUtils.isBlank(email)) {   return "";  }  final int index = StringUtils.indexOf(email, "@");  if (index <= 1) {   return email;  } else {   return StringUtils.rightPad(StringUtils.left(email, 1), index, "*")     .concat(StringUtils.mid(email, index, StringUtils.length(email)));  } } /**  * [銀行卡號] 前六位,后四位,其他用星號隱藏每位1個星號<例子:6222600**********1234>  */ public static String bankCard(final String cardNum) {  if (StringUtils.isBlank(cardNum)) {   return "";  }  return StringUtils.left(cardNum, 6).concat(StringUtils.removeStart(    StringUtils.leftPad(StringUtils.right(cardNum, 4), StringUtils.length(cardNum), "*"), "******")); } /**  * [公司開戶銀行聯(lián)號] 公司開戶銀行聯(lián)行號,顯示前兩位,其他用星號隱藏,每位1個星號<例子:12********>  */ public static String cnapsCode(final String code) {  if (StringUtils.isBlank(code)) {   return "";  }  return StringUtils.rightPad(StringUtils.left(code, 2), StringUtils.length(code), "*"); }}

4.測試

public class Test { private static final Logger logger=LoggerFactory.getLogger(Test.class);  public static void main(String[] args) {  User user=new User();  user.setName("張三");  user.setPhone("18666218777");  user.setEmail("zhangsan@qq.com");  System.out.println(JSON.toJSONString(user.noSensitiveObj()));   }}

結果

{"email":"z*******@qq.com","name":"張*","phone":"18******77"}

經過和同事討論后,發(fā)現(xiàn)其實不需要這么復雜,只要在model 的tostring 方法中脫敏即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
www.综合网.com| 国产蜜臀在线| av中文在线资源| 中文字幕av高清在线观看| 国产福利在线播放| 国产免费黄视频在线观看| 青青草免费观看免费视频在线| 精品黄色免费中文电影在线播放| 在线视频色在线| 全网国产福利在线播放| 国产在线一二| 国产黄色片在线观看| 亚洲精品视频区| 国产精品偷乱一区二区三区| 国产黄色片中文字幕| 白浆爆出在线观看| 国产精品麻豆一区二区三区 | 精品精品导航| eeuss影院www在线播放| 99视频免费在线观看| 国产香蕉视频在线看| 日本片在线看| 国产粉嫩一区二区三区在线观看| 九九热精品在线视频| 亚洲最新永久观看在线| 国产一级视频| 激情在线视频播放| av免费在线播放| 国产高清视频在线| 国产老肥熟xxxx在线观看| eeuss影院www在线播放| 97高清视频| 国产成人精品自线拍| 黄色国产在线| 一区免费观看| 国产精品186在线观看在线播放 | 国产免费黄视频在线观看| 一区免费观看| av福利在线观看| 91资源在线观看| 2020国产在线视频| 国产福利电影在线观看| 国产黄色片在线播放| 国产成人精品男人的天堂538| 1区2区3区在线| 免费午夜一级| 国产卡1卡2卡三卡在线| 午夜视频在线免费| 国产麻豆精品入口在线观看| 九九热在线播放| 五月婷婷在线观看| 国产成人天天5g影院| 亚洲国产成人综合| 好男人社区在线视频| 国产在线一二三| 91视频黄色| 国产在线拍揄自揄拍视频| 99视频免费在线观看| 精品一二三四| 久久精品无码一区二区日韩av| www.五月色.com| 中文字幕在线免费| 69精品视频| 激情四房婷婷| 国产啊啊啊视频在线观看| 香蕉视频在线观看网站| 九九精品九九| 99reav| 碰草在线视频| 精品99又大又爽又硬少妇毛片 | 日本福利在线| 国产精品毛片一区二区三区四区| 精品一区二区观看| 久草福利资源在线视频| 国产成人精品男人的天堂538| 青青草原国产在线观看| 国产寡妇树林野战在线播放| 黄污在线观看| 超碰国产在线| 午夜影院在线| 伊人久久青青草| 国产一级激情| 亚洲成人福利| 成人欧美日韩| 欧美日韩视频精品二区| 国产精彩视频在线观看免费蜜芽| 日本欧美在线视频免费观看| 午夜免费福利在线观看| 在线中文字幕资源| 国产乱xxⅹxx国语对白| 久久精品国产麻豆| 日本视频一二三区中文字幕| 精品亚洲综合| 国产91久久久久蜜臀青青天草二| 国产在线高清| 免费国产视频| 欧美婷婷久久五月精品三区| 国产精品666| 国产二区三区四区| 国产va在线| 国产传媒在线播放| 69视频在线观看| 国产精品视频一区二区三区麻豆 | 日本成a人片在线观看| 97国产视频| 中文在线观看视频| 亚洲欧美小说国产图片| 在线视频中文字幕第一页| 国产精品第八页| 国产成人精品自线拍| 中文字幕2020第一页| 伊人影院在线观看| 欧美专区日韩| 中文字幕免费在线视频| 综合激情丁香| 国产福利小视频在线观看| 国产高清一级片| av在线日韩国产精品| 久久综合精品视频| 国产视频在线播放| 永久免费在线观看| 快射av在线播放一区| 国产亚洲精品午夜高清影院| 国产精品黄页网站在线播放免费| av天天在线| 成人av小说网| 97视频在线观看网站| 久久精品国产麻豆| 精品国产白色丝袜高跟鞋| 开心婷婷激情五月| 国产黄色片中文字幕| 欧美精品se| 精品一区二区观看| 尤物网站在线| 免费三级毛片| 99久热re在线精彩视频| 国产尤物视频| 青青青手机在线视频观看| 国产精品美女一区二区三区四区 | 亚洲精品少妇久久久久久| 麻豆精品免费视频入口| 国产一级激情| 国产理论电影在线| www.99色.com| 在线看黄色av| 18激情网站| 国产精品视频一区二区三区麻豆| 欧美激情福利视频在线观看免费| 国产福利在线观看| 91av久久| 久久久久久日本一区99| 精品国内一区二区三区免费视频| 国产免费网址| 国产在线第一页| 九九99精品| 国产在线日本| 免费99热在线观看| 欧美日韩综合高清一区二区| av片在线观看| av一本在线| 亚洲精品在线播放视频| 日本福利在线| 青青国产在线| 久草福利资源在线视频| 黄色av电影在线播放| 欧美a免费在线| 国产美女极品在线| 五月伊人六月| 国产精品免费91| 99中文字幕一区| av在线日韩国产精品| 亚洲最新永久在线观看| 99热免费观看| www.成人.com| 自拍亚洲国产| 在线成人一区| 免费看的毛片| 国产亚洲精品久久久久久青梅| 国产精品合集一区二区| 永久免费在线观看| 久草福利资源在线视频| 日本中文字幕高清视频| 国产黄色在线网站| 青青国产在线| 国产黄在线观看| 欧美精品小视频| 国产中文伊人| 国产www视频在线观看| 麻豆国产视频| 国产h色视频在线观看| www.色五月| 国产日产精品久久久久久婷婷| 精品欧美不卡一区二区在线观看 | 日韩国产成人| 国产九九九九| av亚洲在线| 精品剧情v国产在线观看| 国精一区二区三区| 亚洲天堂久久久| 国产精品久久精品牛牛影视|