关键信息脱敏

import org.apache.commons.lang3.StringUtils;

/**
 * <p>
 * ClassName: DesensitizationUtils
 * </p>
 * <p>
 * Description: 客户信息脱敏处理工具类
 * </p>
 * <p>
 * author: yu
 * <p>
 * date: 2022年8月19日
 * </p>
 */
public class DesensitizationUtils {

    /**
     * <p>
     * Description: 姓名脱敏处理
     * </p>
     * 
     * @param fullName 姓名
     * @return 处理结果
     */
    public static String desensitizedName(String fullName) {
        if (!StringUtils.isEmpty(fullName)) {
            fullName = fullName.trim();
            if (fullName.length() > 2 && fullName.length() < 10) {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < (fullName.length() - 2); i++) {
                    sb.append("*");
                }
                String left = StringUtils.left(fullName, 1);
                String right = StringUtils.right(fullName, 1);
                return left + sb.toString() + right;
            } else if (fullName.length() >= 10) {
                if (fullName.length() >= 10) {
                    return StringUtils.left(fullName, 5)
                            .concat(StringUtils
                                    .removeStart(StringUtils.leftPad(StringUtils.right(fullName, fullName.length() - 8),
                                            StringUtils.length(fullName), "*"), "***"));
                }
            } else {
                String name = StringUtils.left(fullName, 1);
                return StringUtils.rightPad(name, StringUtils.length(fullName), "*");
            }
        }
        return fullName;
    }

    /**
     * <p>
     * Description: 手机号脱敏处理
     * </p>
     * 
     * @param phoneNumber 手机号
     * @return 处理结果
     */
    public static String desensitizedPhoneNumber(String phoneNumber) {
        if (StringUtils.isNotEmpty(phoneNumber)) {
            phoneNumber = phoneNumber.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");
        }
        return phoneNumber;
    }

    /**
     * <p>
     * Description: 税号脱敏处理
     * </p>
     * 
     * @param taxNo税号
     * @return 处理结果
     */
    public static String desensitizedTaxNo(String taxNo) {
        if (!StringUtils.isEmpty(taxNo)) {
            if (taxNo.length() < 10) {
                taxNo = taxNo.replaceAll("(\\w{2})\\w*(\\w{2})", "$1******$2");
            }
            if (taxNo.length() > 18) {
                taxNo = taxNo.replaceAll("(\\w{4})\\w*(\\w{5})", "$1*********$2");
            }
        }
        return taxNo;
    }

    /**
     * <p>
     * Description: 邮箱脱敏处理
     * </p>
     * 
     * @param email 邮箱
     * @return 处理结果
     */
    public static String desensitizedEmail(String email) {
        if (!StringUtils.isEmpty(email)) {
            email = email.replaceAll("(^\\w)[^@]*(@.*$)", "$1****$2");
        }
        return email;
    }

    /**
     * <p>
     * Description: 身份证号脱敏处理
     * </p>
     * 
     * @param phoneNumber 身份证号
     * @return 处理结果
     */
    public static String desensitizedIdNumber(String idNumber) {
        if (!StringUtils.isEmpty(idNumber)) {
            if (idNumber.length() == 15) {
                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1******$2");
            }
            if (idNumber.length() == 18) {
                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1*********$2");
            }
        }
        return idNumber;
    }

    /**
     * <p>
     * Description: 联系地址脱敏处理
     * </p>
     * 
     * @param address 联系地址
     * @return 处理结果
     */
    public static String desensitizedAddress(String address) {
        if (!StringUtils.isEmpty(address)) {
            return StringUtils.left(address, 3).concat(StringUtils.removeStart(StringUtils.leftPad(
                    StringUtils.right(address, address.length() - 11), StringUtils.length(address), "*"), "***"));
        }
        return address;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值