个人信息脱敏处理

This commit is contained in:
Renpc-kilig 2024-03-04 20:59:10 +08:00
parent c08fd22ec0
commit 35beb3d87d
4 changed files with 94 additions and 5 deletions

View File

@ -7,6 +7,7 @@ import cn.com.tenlion.systemhouse.pojo.dtos.houseuser.HouseUserDTO;
import cn.com.tenlion.systemhouse.pojo.pos.houseuser.HouseUserPO;
import cn.com.tenlion.systemhouse.pojo.vos.houseuser.HouseUserVO;
import cn.com.tenlion.systemhouse.service.houseuser.IHouseUserService;
import cn.com.tenlion.systemhouse.utils.datacover.DataCoverUtils;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
@ -144,7 +145,13 @@ public class HouseUserServiceImpl extends DefaultBaseService implements IHouseUs
@Override
public List<HouseUserDTO> list(Map<String, Object> params) {
return houseUserDao.list(params);
List<HouseUserDTO> list = houseUserDao.list(params);
for(HouseUserDTO houseUserDTO: list) {
houseUserDTO.setName(DataCoverUtils.desensitizeName(houseUserDTO.getName()));
houseUserDTO.setCardNum(DataCoverUtils.desensitizeIdCardNumber(houseUserDTO.getCardNum()));
houseUserDTO.setPhone(DataCoverUtils.desensitizePhoneNumber(houseUserDTO.getPhone()));
}
return list;
}
@Override

View File

@ -6,6 +6,7 @@ import cn.com.tenlion.systemhouse.pojo.dtos.houseusersub.HouseUserSubDTO;
import cn.com.tenlion.systemhouse.pojo.pos.houseusersub.HouseUserSubPO;
import cn.com.tenlion.systemhouse.pojo.vos.houseusersub.HouseUserSubVO;
import cn.com.tenlion.systemhouse.service.houseusersub.IHouseUserSubService;
import cn.com.tenlion.systemhouse.utils.datacover.DataCoverUtils;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
@ -140,7 +141,13 @@ public class HouseUserSubServiceImpl extends DefaultBaseService implements IHous
@Override
public List<HouseUserSubDTO> list(Map<String, Object> params) {
return houseUserSubDao.list(params);
List<HouseUserSubDTO> list = houseUserSubDao.list(params);
for (HouseUserSubDTO houseUserSubDTO : list) {
houseUserSubDTO.setName(DataCoverUtils.desensitizeName(houseUserSubDTO.getName()));
houseUserSubDTO.setCardNum(DataCoverUtils.desensitizeIdCardNumber(houseUserSubDTO.getCardNum()));
houseUserSubDTO.setPhone(DataCoverUtils.desensitizePhoneNumber(houseUserSubDTO.getPhone()));
}
return list;
}
@Override

View File

@ -0,0 +1,75 @@
package cn.com.tenlion.systemhouse.utils.datacover;
/**
* 姓名和身份证脱敏工具类
*/
public class DataCoverUtils {
/**
* 脱敏人名
* @param fullName 完整的人名
* @return 脱敏后的人名
*/
public static String desensitizeName(String fullName) {
if (fullName == null || fullName.isEmpty()) {
return "";
}
// 将名字拆分为姓和名
String[] nameParts = fullName.split(" ");
if (nameParts.length == 1) {
// 如果只有一个名字脱敏第二个字符
if (nameParts[0].length() > 1) {
return nameParts[0].charAt(0) + "*" + nameParts[0].charAt(nameParts[0].length() - 1);
} else {
// 如果只有一个字符则直接返回星号
return "*";
}
} else {
// 如果有姓和名脱敏名字中的第一个字符
return nameParts[0] + " " + "*" + nameParts[1].charAt(nameParts[1].length() - 1);
}
}
/**
* 脱敏身份证号码
* @param idCardNumber 完整的身份证号码
* @return 脱敏后的身份证号码
*/
public static String desensitizeIdCardNumber(String idCardNumber) {
if (idCardNumber == null || idCardNumber.isEmpty() || idCardNumber.length() != 18) {
return "";
}
// 保留前6位和后4位中间8位脱敏
return idCardNumber.substring(0, 6) + "**********" + idCardNumber.substring(14);
}
/**
* 脱敏手机号码
* @param phoneNumber 完整的手机号码
* @return 脱敏后的手机号码
*/
public static String desensitizePhoneNumber(String phoneNumber) {
if (phoneNumber == null || phoneNumber.isEmpty() || phoneNumber.length() != 11) {
return "";
}
// 保留前3位和后4位中间4位脱敏
return phoneNumber.substring(0, 3) + "****" + phoneNumber.substring(7);
}
public static void main(String[] args) {
String fullName = "张三";
String idCardNumber = "123456789012345678";
String desensitizedName = desensitizeName(fullName);
String desensitizedIdCardNumber = desensitizeIdCardNumber(idCardNumber);
System.out.println("原始人名: " + fullName);
System.out.println("脱敏后人名: " + desensitizedName);
System.out.println("原始身份证号码: " + idCardNumber);
System.out.println("脱敏后身份证号码: " + desensitizedIdCardNumber);
}
}

View File

@ -1,6 +1,6 @@
server:
port: 8083
url: http://192.168.0.111:8083/systemhouse
url: http://192.168.0.4:8083/systemhouse
system-title: 房屋管理系统
system-sub-title: 房屋管理系统
nav-page: http://192.168.0.155:7011/usercenter
@ -125,8 +125,8 @@ security:
oauth-server: http://192.168.0.155:7011/usercenter
oauth-logout: ${security.oauth2.oauth-server}/logout?redirect_uri=${server.url}
client:
client-id: 347b893bfd034c43b2349d84c7df1591
client-secret: SnJnTWJ2TS9LMGJMZXFobS9kY1NQOHNEa01EVGtaVk9HU1hoMEZNa2RKSGxIdG9KZmEyTjJIRnI0dG1McEdEVA==
client-id: 0df0a2df7ffc409ba5ca1b95c64899e4
client-secret: R3ZDY2xDRnlWREZBb2g5SmRscnpuZVhhRjQ1a2RuSXNsWHg5UUN2M09nbmxIdG9KZmEyTjJIRnI0dG1McEdEVA==
user-authorization-uri: ${security.oauth2.oauth-server}/oauth2_client/authorize
access-token-uri: ${security.oauth2.oauth-server}/oauth2_client/token
grant-type: authorization_code