UserInfo oldUserInfo = userService.selectUserInfoById(userInfo.getId()); conTroller.addUserLog(oldUserInfo, userInfo, userLogService, "updateToDetail", us.getPhone()); UserInfo verifyUser = userService.selectUserInfoByUserName(userInfo.getPhone()); if (verifyUser != null && !verifyUser.getId().equals(userInfo.getId())) { out.print("<script>top.Dialog.alert('号码已经被注册');window.location.href='id?u=" + userInfo.getUsername() + "';</script>"); out.close(); return; } // 判断身份证是否脱敏 String idCard = userInfo.getCard(); if (idCard.equals(verifyUser.getCard())) { // 如果用户输入的身份证与原始身份证相同,则更新身份证信息 userInfo.setCard(verifyUser.getCard()); } if (!StringUtil.isEmpty(userInfo.getCard())) { Pattern pattern = Pattern.compile("[^A-Za-z0-9]", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(userInfo.getCard()); userInfo.setCard(matcher.replaceAll("")); }这怎么修改,前端传的是脱敏的数据,怎么解决
时间: 2024-04-19 20:24:04 浏览: 19
如果前端传递的是脱敏的身份证数据,并且你想要将其解密后进行处理,可以修改代码如下:
```java
UserInfo oldUserInfo = userService.selectUserInfoById(userInfo.getId());
conTroller.addUserLog(oldUserInfo, userInfo, userLogService, "updateToDetail", us.getPhone());
UserInfo verifyUser = userService.selectUserInfoByUserName(userInfo.getPhone());
if (verifyUser != null && !verifyUser.getId().equals(userInfo.getId())) {
out.print("<script>top.Dialog.alert('号码已经被注册');window.location.href='id?u=" + userInfo.getUsername() + "';</script>");
out.close();
return;
}
// 解密脱敏的身份证数据
String idCard = decryptIdCard(userInfo.getCard()); // 假设有解密方法decryptIdCard()
if (idCard.equals(verifyUser.getCard())) { // 如果用户输入的身份证与原始身份证相同,则更新身份证信息
userInfo.setCard(verifyUser.getCard());
}
if (!StringUtil.isEmpty(userInfo.getCard())) {
Pattern pattern = Pattern.compile("[^A-Za-z0-9]", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(userInfo.getCard());
userInfo.setCard(matcher.replaceAll(""));
}
```
在上述代码中,新增了一个`decryptIdCard`方法用于解密脱敏的身份证数据。你需要根据实际情况实现该方法,将脱敏的身份证数据解密成原始的身份证号码。
请根据具体需求和解密逻辑进行相应的调整和修改。