以下是一个简单的Java算法,用于对证件号和手机号进行敏感信息处理:

import java.util.regex.Pattern;

public class SensitiveInfoAlgorithm {

    // 证件号码正则表达式
    private static final String ID_CARD_REGEX = "(\d{15})|(\d{17}[a-zA-Z0-9])";
    
    // 手机号码正则表达式
    private static final String MOBILE_REGEX = "1\d{10}";

    /**
     * 对证件号进行敏感信息处理
     * @param idCard 证件号
     * @return 处理后的证件号
     */
    public static String handleIdCard(String idCard) {
        if (idCard == null || idCard.isEmpty()) {
            return null;
        }
        // 隐藏证件号中间部分
        return idCard.replaceAll("(?<=\w{3})\w(?=\w{4})", "*");
    }

    /**
     * 对手机号进行敏感信息处理
     * @param mobile 手机号
     * @return 处理后的手机号
     */
    public static String handleMobile(String mobile) {
        if (mobile == null || mobile.isEmpty()) {
            return null;
        }
        // 隐藏手机号中间部分
        return mobile.replaceAll("(?<=\d{3})\d(?=\d{4})", "*");
    }

    /**
     * 判断是否为合法的证件号
     * @param idCard 证件号
     * @return 是否合法
     */
    public static boolean isValidIdCard(String idCard) {
        if (idCard == null || idCard.isEmpty()) {
            return false;
        }
        return Pattern.matches(ID_CARD_REGEX, idCard);
    }

    /**
     * 判断是否为合法的手机号
     * @param mobile 手机号
     * @return 是否合法
     */
    public static boolean isValidMobile(String mobile) {
        if (mobile == null || mobile.isEmpty()) {
            return false;
        }
        return Pattern.matches(MOBILE_REGEX, mobile);
    }

}

这个算法包含四个方法:

  • handleIdCard:对证件号进行敏感信息处理,将证件号中间部分替换为'*',例如将'110101199001011234'处理为'110***********1234'。
  • handleMobile:对手机号进行敏感信息处理,将手机号中间部分替换为'',例如将'13812345678'处理为'138***5678'。
  • isValidIdCard:判断是否为合法的证件号,使用正则表达式进行验证。
  • isValidMobile:判断是否为合法的手机号,使用正则表达式进行验证。

这个算法使用Java正则表达式进行匹配和替换,比较简单。需要注意的是,这个算法只是一个简单的示例,实际应用中可能需要更复杂的处理逻辑。

Java 敏感信息处理算法:证件号和手机号脱敏

原文地址: https://www.cveoy.top/t/topic/mDLC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录