最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java編寫(xiě)日志手機(jī)號(hào)脫敏工具類(lèi)

 更新時(shí)間:2024年12月02日 09:01:02   作者:帥氣的濤啊  
在開(kāi)發(fā)過(guò)程中,很容易將用戶(hù)敏感信息,例如手機(jī)號(hào)碼、身份證等,打印在日志平臺(tái),本文將利用Java編寫(xiě)一個(gè)日志手機(jī)號(hào)脫敏工具類(lèi),感興趣的可以了解下

背景

在開(kāi)發(fā)過(guò)程中,很容易將用戶(hù)敏感信息,例如手機(jī)號(hào)碼、身份證等,打印在日志平臺(tái)。為了保護(hù)用戶(hù)數(shù)據(jù),又不影響日志的打印,需要將日志中的敏感信息進(jìn)行脫敏。

效果

沒(méi)看明白,強(qiáng)烈建議 pull項(xiàng)目,執(zhí)行一下項(xiàng)目中SensitiveUtils#main方法。

特性

  • 支持多層級(jí)【Json】/【對(duì)象】字段脫敏
  • 支持一次多字段脫敏
  • 支持除【連續(xù)數(shù)組層次(下面會(huì)舉例)】脫敏
  • 不侵入業(yè)務(wù)代碼(例如使用注解進(jìn)行脫敏)

使用

輸入為字符串/對(duì)象及單Json路徑

// 傳入對(duì)象
User user = new User();
user.setName("xiaoming");
user.setPhone("13455556666");
String strResult4 = SensitiveUtils.desMobilePhone(user, "phone");
System.out.println(strResult4); // {"phone":"134****6666","name":"xiaoming"}

// 傳入json字符串
String str1 = "{\"name\":\"xiaoming\",\"phone\":\"13455556666\"}";
String strResult5 = SensitiveUtils.desMobilePhone(str1, "phone");
System.out.println(strResult5); // {"phone":"134****6666","name":"xiaoming"}

輸入為字符串/對(duì)象及多Json路徑

上圖中,如果要脫敏全部手機(jī)號(hào),路徑則為 :phone , parent#phone

String str8 = "[{\"name\":\"xiaoliu\",\"phone\":\"13522222222\",\"parent\":[{\"name\":\"oldliu\",\"phone\":\"13533333333\"}]},{\"name\":\"xiaowang\",\"phone\":\"13500000000\",\"parent\":[{\"name\":\"oldwang\",\"phone\":\"13511111111\"},{\"name\":\"oldzhang\",\"phone\":\"13555555555\"}]}]";
String strResult8 = SensitiveUtils.desMobilePhone(str8, new HashSet<>(Arrays.asList("phone", "parent#phone")));
System.out.println(strResult8); // [{"parent":[{"phone":"135****3333","name":"oldliu"}],"phone":"135****2222","name":"xiaoliu"},{"parent":[{"phone":"135****1111","name":"oldwang"},{"phone":"135****5555","name":"oldzhang"}],"phone":"135****0000","name":"xiaowang"}]

上圖中,如果要脫敏全部手機(jī)號(hào),路徑則為 :phone , parent#phone

String str9 = "{\"name\":\"xiaowang\",\"phone\":\"13500000000\",\"parent\":{\"name\":\"oldwang\",\"phone\":\"13511111111\"}}";
String strResult9 = SensitiveUtils.desMobilePhone(str9, new HashSet<>(Arrays.asList("phone", "parent#phone")));
System.out.println(strResult9);

已知缺陷

暫不支持連續(xù)倆層數(shù)組結(jié)構(gòu)的JSON字符串/對(duì)象

暫不支持對(duì)String以外類(lèi)型脫敏

暫不支持字符串中【對(duì)象JSON字符串】脫敏

{
    "info": "{\"data\":\"{\\\"phone\\\":\\\"13444444444\\\"}\"}"
}

未來(lái)優(yōu)化方向

  • 增加更多脫敏類(lèi)型(如身份證號(hào)碼)
  • 支持一個(gè)對(duì)象/Json字符串多種脫敏類(lèi)型,例如:一個(gè)字符串同時(shí)脫敏手機(jī)號(hào)、身份證號(hào)
  • 連續(xù)數(shù)組脫敏(待定)
  • 支持非String類(lèi)型字段脫敏(待定)
  • 字符串中【對(duì)象JSON字符串】脫敏(待定)

到此這篇關(guān)于Java編寫(xiě)日志手機(jī)號(hào)脫敏工具類(lèi)的文章就介紹到這了,更多相關(guān)Java手機(jī)號(hào)脫敏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

东宁县| 兰州市| 彰化市| 荣昌县| 越西县| 镇安县| 裕民县| 阿拉善左旗| 锦州市| 普洱| 本溪市| 铅山县| 永安市| 承德县| 高雄县| 田阳县| 黑河市| 剑河县| 肇州县| 玛沁县| 衡阳县| 安国市| 营山县| 顺平县| 夏津县| 黄龙县| 虹口区| 延长县| 永和县| 平原县| 晴隆县| 焉耆| 大英县| 彭水| 深圳市| 林周县| 多伦县| 赤城县| 响水县| 休宁县| 建宁县|