1. 程式人生 > >手機號隱藏中間四位、使用者名稱處理、銀行卡擷取後四位等敏感資訊處理工具類

手機號隱藏中間四位、使用者名稱處理、銀行卡擷取後四位等敏感資訊處理工具類

在我們平常開發中,我們有時候需要對使用者名稱、手機號等資訊進行一些敏感資訊的處理(如:王小五 →王*五),還有銀行卡擷取後四位等,這裡我整理成了一個工具類,分享給大家!

/**
 * 敏感資訊處理工具類
 * @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);
    }
}

如有不足之處,希望能夠評論回覆!