java脫敏

java數據脫敏處理,手機號,身份證號和銀行卡號打碼展示
結果圖如下

20:17:51.730 [main] INFO com.lockbur.open.AppTest - 手機號 1364724
20:17:51.740 [main] INFO com.lockbur.open.AppTest - 手機號 13

20:17:51.741 [main] INFO com.lockbur.open.AppTest - 郵箱 845[email protected]
20:17:51.741 [main] INFO com.lockbur.open.AppTest - 郵箱不夠四位 22
@qq.com
20:17:51.742 [main] INFO com.lockbur.open.AppTest - 郵箱錯誤 22qq.com
20:17:51.742 [main] INFO com.lockbur.open.AppTest - 假身份證號 132****99308084911
1
2
3
4
5
6
1 先引入commons-lang3,這個基本每個項目都用到

org.apache.commons
commons-lang3
3.7

1
2
3
4
5
2 數據處理
這裏主要用StringUtils工具的overlay(String str,String overlay,int start,int end)方法可以在指定位置進行字符序列替換,從start索引處開始(包含)到end-1索引處爲止進行替換

package com.lockbur.open.utils;
import org.apache.commons.lang3.StringUtils;
/**

  • 數據隱私顯示 手機號,身份證號和銀行卡號等

  • @author wangkun23
    /
    public class PrivacyDimmer {
    private static final String OVERLAY = "
    ***";
    private static final int START = 3;
    private static final int END = 7;
    /**

    • 139****0504
    • @param content
    • @return
      */
      public static String maskMobile(String content) {
      if (StringUtils.isEmpty(content)) {
      return “”;
      }
      return StringUtils.overlay(content, OVERLAY, START, END);
      }

    /**

    • 過濾郵箱賬號
    • 132****99308084911
    • @param email
    • @return
      /
      public static String maskEmail(String email) {
      if (StringUtils.isEmpty(email)) {
      return “”;
      }
      String at = “@”;
      if (!email.contains(at)) {
      return email;
      }
      /
      *
      • 這裏主要邏輯是需要保留郵箱的註冊商 比如@qq.com
        */
        int length = StringUtils.indexOf(email, at);
        String content = StringUtils.substring(email, 0, length);
        String mask = StringUtils.overlay(content, OVERLAY, START, END);
        return mask + StringUtils.substring(email, length);
        }

    /**

    • 身份證打碼操作
    • 132****99308084911
    • @param idCard
    • @return
      */
      public static String maskIdCard(String idCard) {
      if (StringUtils.isEmpty(idCard)) {
      return “”;
      }
      return StringUtils.overlay(idCard, OVERLAY, START, END);
      }
      }
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      3測試結果
      @Test
      public void overlay() {
      logger.info(“手機號 {}”, PrivacyDimmer.maskMobile(“13661014724”));
      logger.info(“手機號 {}”, PrivacyDimmer.maskMobile(“13”));
      logger.info(“郵箱 {}”, PrivacyDimmer.maskEmail("[email protected]"));
      logger.info(“郵箱不夠四位 {}”, PrivacyDimmer.maskEmail("[email protected]"));
      logger.info(“郵箱錯誤 {}”, PrivacyDimmer.maskEmail(“22qq.com”));
      logger.info(“假身份證號 {}”,PrivacyDimmer.maskIdCard(“132128199308084911”));
      }

作者:一名清官
來源:CSDN
原文:https://blog.csdn.net/WK313753744/article/details/87867720
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

Java-----隱藏手機號中間四位
2016年03月16日 14:54:37 hekewangzi 閱讀數:31432
phone.replaceAll("(\d{3})\d{4}(\d{4})","$1****$2");
152****4799

idCard.replaceAll("(\d{4})\d{10}(\w{4})","$1*****$2");
4304*****7733

$1、$2、……表示正則表達式裏面第一個、第二個、……括號裏面的匹配內容
處理姓名
String sex = rs.getSex();
if(“1”.equals(sex)){
invnm=invnm.substring(0,1)+“先生”;
} else {
invnm=invnm.substring(0,1)+“女士”;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章