数据脱敏java代码

使用正则加replaceAll方式脱敏(不支持中文)

//前prefix后suffix脱敏方法
public String hide(String number ,Integer prefix, Integer suffix) {
public String hide(String number ,Integer prefix, Integer suffix) {
	if (number == null || "".equals(number) || number.length() < prefix + suffix) return number;
	return number.replaceAll("(?<=\\w{" + prefix + "})\\w(?=\\w{" + suffix + "})", "*");
}
}

使用拼接的方式脱敏(支持中文)

//前prefix后suffix脱敏方法(必要时可将此方法放置到工具类中)
public static String hide(String value ,Integer prefix, Integer suffix) {
    if (prefix < 0 || suffix < 0) {
        return value;
    }
    if (value == null || "".equals(value) || value.length() <= (prefix + suffix)) return value;
    // 截取前prefix位
    String front = value.substring(0, prefix);
    // 截取后suffix位
    String back = value.substring(value.length() - suffix);
    // 生成中间的星号
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < value.length() - (prefix + suffix); i++) {
        sb.append("*");
    }
    // 拼接结果
    return front + sb.toString() + back;
}
posted @ 2021-05-26 17:28  品书读茶  阅读(172)  评论(0编辑  收藏  举报