脱敏工具类。手机号银行卡号身份证号关键信息脱敏
Posted Biubbbbbbbbiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了脱敏工具类。手机号银行卡号身份证号关键信息脱敏相关的知识,希望对你有一定的参考价值。
手机号、银行卡号、身份证号、关键信息脱敏
老规矩,话不多说直接上代码
package com.util.conceal;
/**
* 数据脱敏工具
* Created by shi on 2022/2/14.
*/
public class ConcealUtil
private static final int SIZE = 6;
private static final String SYMBOL = "*";
/**
* 实际替换动作
*
* @param username username
* @param regular 正则
* @return
*/
private static String replaceAction(String username, String regular)
return username.replaceAll(regular, "*");
/**
* 身份证号替换,保留前四位和后四位
* <p>
* 如果身份证号为空 或者 null ,返回null ;否则,返回替换后的字符串;
*
* @param idCard 身份证号
* @return
*/
public static String idCardConceal(String idCard)
if (idCard.isEmpty() || idCard == null)
return null;
else
return replaceAction(idCard, "(?<=\\\\d6)\\\\d(?=\\\\d4)");
/**
* 银行卡替换,保留后四位
* <p>
* 如果银行卡号为空 或者 null ,返回null ;否则,返回替换后的字符串;
*
* @param bankCard 银行卡号
* @return
*/
public static String bankCardConceal(String bankCard)
if (bankCard.isEmpty() || bankCard == null)
return null;
else
return replaceAction(bankCard, "(?<=\\\\d0)\\\\d(?=\\\\d4)");
/**
* 姓名及地址脱敏
* @param value
* @return
*/
public static String nameOrAddrConceal(String value)
if (null == value || "".equals(value))
return value;
int len = value.length();
int pamaone = len / 2;
int pamatwo = pamaone - 1;
int pamathree = len % 2;
StringBuilder stringBuilder = new StringBuilder();
if (len <= 2)
if (pamathree == 1)
return SYMBOL;
stringBuilder.append(value.charAt(0));
stringBuilder.append(SYMBOL);
else
if (pamatwo <= 0)
stringBuilder.append(value.substring(0, 1));
stringBuilder.append(SYMBOL);
stringBuilder.append(value.substring(len - 1, len));
else if (pamatwo >= SIZE / 2 && SIZE + 1 != len)
int pamafive = (len - SIZE) / 2;
stringBuilder.append(value.substring(0, pamafive));
for (int i = 0; i < SIZE; i++)
stringBuilder.append(SYMBOL);
if ((pamathree == 0 && SIZE / 2 == 0) || (pamathree != 0 && SIZE % 2 != 0))
stringBuilder.append(value.substring(len - pamafive, len));
else
stringBuilder.append(value.substring(len - (pamafive + 1), len));
else
int pamafour = len - 2;
stringBuilder.append(value.substring(0, 1));
for (int i = 0; i < pamafour; i++)
stringBuilder.append(SYMBOL);
stringBuilder.append(value.substring(len - 1, len));
return stringBuilder.toString();
以上是关于脱敏工具类。手机号银行卡号身份证号关键信息脱敏的主要内容,如果未能解决你的问题,请参考以下文章
基于 Sharding Sphere,实现数据 “一键脱敏”!
基于 Sharding Sphere,实现数据 “一键脱敏”!