数据脱敏 /** * 数据脱敏 存在风险 */ public String desensitization(String data, int i) { if (i data.length()) { System.out.println("指定位置大于脱敏字符串长度"); return data; } //有风险 会将同样字符 替换为
/** * 数据脱敏 存在风险 */ public String desensitization(String data, int i) { if (i > data.length()) { System.out.println("指定位置大于脱敏字符串长度"); return data; } //有风险 会将同样字符 替换为 * return data.replace(data.charAt(i - 1), '*'); } /** * 数据脱敏 如果只需要替换一位 那么 head 和 foot填写一致即可 */ public String desensitization(String data, int head, int foot) { //如果 头 大于 尾,那么头尾互换 if (head > foot) { int index = foot; foot = head; head = index; } String data1 = data.substring(0, head - 1); String data2 = data.substring(foot - 1, data.length()); int i = foot - head; StringBuilder stringBuilder = new StringBuilder("*"); while (i > 0) { stringBuilder.append("*"); i--; } return data1 + stringBuilder.toString() + data2; }