手機號隱藏中間四位、使用者名稱處理、銀行卡擷取後四位等敏感資訊處理工具類
阿新 • • 發佈:2018-12-15
在我們平常開發中,我們有時候需要對使用者名稱、手機號等資訊進行一些敏感資訊的處理(如:王小五 →王*五),還有銀行卡擷取後四位等,這裡我整理成了一個工具類,分享給大家!
/** * 敏感資訊處理工具類 * @author Zhang */ public final class SensitiveInfoUtils { private SensitiveInfoUtils() { throw new AssertionError(" 不能產生例項"); } /** * 名字脫敏處理 * @param name 名字 * @return 脫敏後的名字 */ public static String name(String name) { if (name == null || name.isEmpty()) { return "*"; } char[] chars = name.toCharArray(); for (int i = 1; i < chars.length; i ++) { chars[i] = '*'; } return new String(chars); } /** * 使用者姓名脫敏 * @param name 姓名 * @return 脫敏後的姓名 */ public static String username(String name) { if (StringUtils.isEmpty(name) || name.length() == 1) { return "*"; } char[] chars = name.toCharArray(); chars[1] = '*'; for (int i = 2; i < chars.length - 1; i ++) { chars[i] = '*'; } return new String(chars); } /** * 銀行卡脫敏 (擷取後4位) * @param cardNo 卡號 * @return 脫敏後的卡號 */ public static String bankCard(String cardNo) { if (StringUtils.isEmpty(cardNo)) { return ""; } return cardNo.substring(cardNo.length() - 4); } /** * 手機號脫敏 (中間四位隱藏) * @param mobile 手機號 * @return 脫敏後的手機號 */ public static String mobile(String mobile) { if (StringUtils.isEmpty(mobile)) { return ""; } char[] chars = mobile.toCharArray(); int i = 3; chars[i ++] = '*'; chars[i ++] = '*'; chars[i ++] = '*'; chars[i] = '*'; return new String(chars); } }
如有不足之處,希望能夠評論回覆!