当前位置: 首页 > 游戏攻略 > 敏感信息脱敏工具 - SensitiveUtils

敏感信息脱敏工具 - SensitiveUtils

来源:网络 作者:趣玩小编 发布时间:2024-12-01 09:49:14

在软件开发过程中,经常会遇到将用户的敏感信息如手机号码、身份证号等不慎打印在日志中的情况。为了保护用户数据隐私,又不影响日志的正常打印,我们需要对日志中的敏感信息进行脱敏处理。

为了解决这一问题,我们介绍了一款名为SensitiveUtils的敏感信息脱敏工具。该工具能够对日志中的敏感信息进行有效脱敏,保护用户隐私。

如果对工具的使用方法还不太清楚,建议先拉取项目代码,并执行其中的 SensitiveUtils#main 方法,以便更好地理解。

特性

  1. 支持多层级的Json/对象字段脱敏
  2. 支持一次性对多个字段进行脱敏处理
  3. 支持对连续数组层次以外的字段脱敏

使用方法

  1. 输入为字符串/对象及单个Json路径

    // 传入对象
    User user = new User();
    user.setName("小明");
    user.setPhone("13455556666");
    String strResult4 = SensitiveUtils.desMobilePhone(user, "phone");
    System.out.println(strResult4); // {"phone":"134****6666","name":"小明"}
    
    // 传入json字符串
    String str1 = "{\"name\":\"小明\",\"phone\":\"13455556666\"}";
    String strResult5 = SensitiveUtils.desMobilePhone(str1, "phone");
    System.out.println(strResult5); // {"phone":"134****6666","name":"小明"}
    
  2. 输入为字符串/对象及多个Json路径

    如果要对所有手机号进行脱敏,路径应包括: phone parent#phone

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

    如果要对所有手机号进行脱敏,路径应包括: phone parent#phone

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

已知缺陷

  1. 暂不支持连续俩层数组结构的JSON字符串/对象

  2. 暂不支持对String以外类型的脱敏处理

  3. 暂不支持对字符串中的【对象JSON字符串】进行脱敏处理

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

未来优化方向

  1. 增加更多脱敏类型,如身份证号码
  2. 支持一个对象/Json字符串多种脱敏类型,例如:一个字符串同时脱敏手机号、身份证号
  3. 连续数组脱敏(待定)
  4. 支持非String类型字段脱敏(待定)
  5. 字符串中【对象JSON字符串】脱敏(待定)

Github地址

https://github.com/handsometaoa/SensitiveUtils

热门推荐 更多 +
休闲益智 | 945.71MB
我的世界是一款风靡全球的3D第一人称沙盒...
9.6
角色扮演 | 878.96MB
最新版《汉家江湖》是一款以武侠为题材、以...
9.5
飞行射击 | 262.79MB
《荒野乱斗》是快节奏射击类多人对战游戏。...
9.5
飞行射击 | 102.9M
掌上飞车手游app是由腾讯特别为QQ飞车...
9.2
休闲益智 | 263.56MB
开心消消乐是一款轻松休闲的手游,也是一款...
9.6