敏感信息(用戶名,銀行卡號,身份證號,手機號)用星號代替


項目中有一些地方需要做到保密的效果:

  • 用戶名一部分需要替換為*來達到保密效果;
  • 銀行卡號一部分需要替換為 *
  • 身份證號一部分需要替換為 *

把這個工具類分享出來

 1 package com.chinasun;
 2 
 3 /**
 4  * File Description : String的替換,以達到保密效果
 5  *
 6  *根據需求改寫 以下正則都是數字,手機號代碼沒寫和身份證號一樣
 7  */
 8 public class StringReplaceUtil {
 9     /**
10      * 根據用戶名的不同長度,來進行替換 ,達到保密效果
11      *
12      * @param userName
13      *            用戶名
14      * @return 替換后的用戶名
15      */
16     public static String userNameReplaceWithStar(String userName) {
17         String userNameAfterReplaced = "";
18 
19         if (userName == null) {
20             userName = "";
21         }
22 
23         int nameLength = userName.length();
24         System.out.println(nameLength);
25 
26         if (nameLength <= 1) {
27             userNameAfterReplaced = "*";
28         } else if (nameLength == 2) {
29             userNameAfterReplaced = replaceAction(userName, "(?<=\\w{0})\\w(?=\\w{1})");
30         } else if (nameLength >= 3 && nameLength <= 6) {
31             userNameAfterReplaced = replaceAction(userName, "(?<=\\d{1})\\d(?=\\d{1})");
32         } else if (nameLength == 7) {
33             userNameAfterReplaced = replaceAction(userName, "(?<=\\d{1})\\d(?=\\d{2})");
34         } else if (nameLength == 8) {
35             userNameAfterReplaced = replaceAction(userName, "(?<=\\d{2})\\d(?=\\d{2})");
36         } else if (nameLength == 9) {
37             userNameAfterReplaced = replaceAction(userName, "(?<=\\d{2})\\d(?=\\d{3})");
38         } else if (nameLength == 10) {
39             userNameAfterReplaced = replaceAction(userName, "(?<=\\d{3})\\d(?=\\d{3})");
40         } else if (nameLength >= 11) {
41             userNameAfterReplaced = replaceAction(userName, "(?<=\\d{3})\\d(?=\\d{4})");
42         }
43 
44         return userNameAfterReplaced;
45 
46     }
47 
48     /**
49      * 實際替換動作
50      *
51      * @param username
52      *            username
53      * @param regular
54      *            正則
55      * @return
56      */
57     private static String replaceAction(String username, String regular) {
58         return username.replaceAll(regular, "*");
59     }
60 
61     /**
62      * 身份證號替換,保留前四位和后四位
63      *
64      * 如果身份證號為空 或者 null ,返回null ;否則,返回替換后的字符串;
65      *
66      * @param idCard
67      *            身份證號
68      * @return
69      */
70     public static String idCardReplaceWithStar(String idCard) {
71 
72         if (idCard.isEmpty() || idCard == null) {
73             return null;
74         } else {
75             return replaceAction(idCard, "(?<=\\d{4})\\d(?=\\d{4})");
76         }
77     }
78 
79     /**
80      * 銀行卡替換,保留后四位
81      *
82      * 如果銀行卡號為空 或者 null ,返回null ;否則,返回替換后的字符串;
83      *
84      * @param bankCard
85      *            銀行卡號
86      * @return
87      */
88     public static String bankCardReplaceWithStar(String bankCard) {
89 
90         if (bankCard.isEmpty() || bankCard == null) {
91             return null;
92         } else {
93             return replaceAction(bankCard, "(?<=\\d{0})\\d(?=\\d{4})");
94         }
95     }
96 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM