数据脱敏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;
}
纸上得来终觉浅,绝知此事要躬行。