All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dagm.devtool.utils.SensitiveInfoUtils Maven / Gradle / Ivy

The newest version!
package com.dagm.devtool.utils;

import org.apache.commons.lang3.StringUtils;

public class SensitiveInfoUtils {

    /**
     * [中文姓名] 只显示第一个汉字,其他隐藏为2个星号 例:张**
     * @return String
     * @param fullName 原中文姓名
     * @author Guimu
     * @date 2019/12/24
     */
    public static String chineseName(String fullName) {
        String result = "";
        if (StringUtils.isNotBlank(fullName)) {
            String name = StringUtils.left(fullName, 1);
            result = StringUtils.rightPad(name, StringUtils.length(fullName), "*");
        }
        return result;
    }

    /**
     * 对名字长度进行判断:两个字的脱敏后面[张*];三个字的脱敏中间[张*培];四个字及以上的脱敏前两个以后的[张培**];
     * @return String
     * @param fullName 原中文姓名
     * @author Guimu
     * @date 2019/12/24
     */
    public static String fullChineseName(String fullName) {
        String result = "";
        if (StringUtils.isNotBlank(fullName)) {
            //对名字长度进行判断:两个字的脱敏后面;三个字的脱敏中间;四个字及以上的脱敏前两个以后的;
            int nameLength = 0;
            nameLength = StringUtils.length(fullName);
            String tempName = "";
            String tempName2 = "";
            if (nameLength != 0) {
                if (nameLength == 2) {
                    tempName = StringUtils.left(fullName, 1);
                    result = StringUtils.rightPad(tempName, StringUtils.length(fullName), "*");
                } else if (nameLength == 3) {
                    tempName = StringUtils.left(fullName, 1);
                    tempName2 = StringUtils.right(fullName, 1);
                    result = tempName + "*" + tempName2;
                } else {
                    if (nameLength > 3) {
                        tempName = StringUtils.left(fullName, 2);
                        result = StringUtils.rightPad(tempName, StringUtils.length(fullName), "*");
                    }
                }
            }
        }
        return result;
    }

    /**
     * [身份证号] 123****12,前面保留3位明文,后面保留2位明文
     *
     * @return String
     * @param idCard 原身份证号
     * @author Guimu
     * @date  2019/12/24
     */
    public static String identificationNum(String idCard) {
        String result = "";
        if (StringUtils.isNotBlank(idCard)) {
            result = StringUtils.left(idCard, 3).concat(StringUtils.removeStart(
                StringUtils.leftPad(StringUtils.right(idCard, 2), StringUtils.length(idCard), "*"),
                "***"));
        }
        return result;
    }

    /**
     * [固定电话] 后四位,其他隐藏 例:****1234
     * @param phone 原固定电话
     * @author Guimu
     * @return String
     * @date 2019/12/24
     */
    public static String fixedPhone(String phone) {
        String result = "";
        if (StringUtils.isNotBlank(phone)) {
            result = StringUtils.leftPad(StringUtils.right(phone, 4), StringUtils.length(phone), "*");
        }
        return result;
    }

    /**
     * [手机号码] 前3位,后4位,其他隐藏 例:123****1234
     * @param phone 原手机号码
     * @return String
     * @author Guimu
     * @date 2019/12/24
     */
    public static String mobilePhone(String phone) {
        String result = "";
        if (StringUtils.isNotBlank(phone)) {
            result = StringUtils.left(phone, 3).concat(StringUtils.removeStart(
                StringUtils.leftPad(StringUtils.right(phone, 4), StringUtils.length(phone), "*"),
                "***"));
        }
        return result;
    }

    /**
     * [地址] 只显示到地区,不显示详细地址;我们要对个人信息增强保护 例:北京****
     * @return String
     * @param address 原地址
     * @author Guimu
     * @date 2019/12/24
     */
    public static String address(String address) {
        String result = "";
        if (StringUtils.isNotBlank(address)) {
            int length = StringUtils.length(address);
            result = StringUtils
                .rightPad(StringUtils.left(address, 3), length, "*");
        }
        return result;
    }

    /**
     * [电子邮箱] 邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示 例:g**@163.com
     * @param email 原电子邮箱
     * @return String
     * @author Guimu
     * @date 2019/12/24
     */
    public static String email(String email) {
        String result = "";
        if (StringUtils.isNotBlank(email)) {
            int index = StringUtils.indexOf(email, "@");
            if (index <= 1) {
                result = email;
            } else {
                result = StringUtils.rightPad(StringUtils.left(email, 1), index, "*")
                    .concat(StringUtils.mid(email, index, StringUtils.length(email)));
            }
        }
        return result;
    }

    /**
     * [银行卡号] 前四位,后四位,其他用星号隐藏每位1个星号 例:6222600**********1234
     * @return String
     * @param cardNum 原银行卡号
     * @author Guimu
     * @date 2019/12/24
     */
    public static String bankCard(String cardNum) {
        String result = "";
        if (StringUtils.isNotBlank(cardNum)) {
            result = StringUtils.left(cardNum, 4).concat(StringUtils.removeStart(StringUtils
                    .leftPad(StringUtils.right(cardNum, 4), StringUtils.length(cardNum), "*"),
                "******"));
        }
        return result;
    }

    /**
     * [公司开户银行联号] 公司开户银行联行号,显示前两位,其他用星号隐藏,每位1个星号 例:12********
     * @param code 原公司开户银行联号
     * @return String
     * @author Guimu
     * @date 2019/12/24
     */
    public static String cnapsCode(String code) {
        String result = "";
        if (StringUtils.isNotBlank(code)) {
            result = StringUtils.rightPad(StringUtils.left(code, 2), StringUtils.length(code), "*");
        }
        return result;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy