对用户敏感信息进行处理楚奇楚童 ,如银行卡卡号朱英辉 ,姓名关东太阳会 ,手机号等-代码君小飞吴若石
场景:项目中有个地方犬齿之家 ,用户输入订单号跨世奇缘 ,然后显示对应的用户信息车娅婷 ,银行要求我们将对应的用户信息进行处理吴坚忠 ,以保证用户的信息安全
import java.util.regex.Pattern;public class Test {public static void main(String[] args) {//将手机号中间部分进行*号处理String phone = "18317065555";System.err.println("处理后的手机号:"+phoneEncryption(phone));//将银行卡号中间部分进行*号处理String account ="6217001180005555555";System.err.println("处理后的卡号:"+accountEncryption(account));//将用户名中间部分用*字符代替麦小龙 ,中间有几个字符就有几个*号String name = "上官云韵";String lastChar = name.substring(name.length() - 1);if (name.length() <= 1) {System.out.println("*");} else {System.err.println("处理后的姓名:"+name.replaceAll("([\u4e00-\u9fa5]{1})(.*)"股海泛舟,"$1" + createAsterisk(name.length() - 2)) + lastChar);}//将用户名中间部分用一个*代替String realname = "呆头呆脑的程序员";String realname1 = null;char[] r = realname.toCharArray();if (r.length == 1) {realname1 = realname;}if (r.length == 2) {realname1 = realname.replaceFirst(realname.substring(1)张拉拉 , "*");}if (r.length > 2) {realname1 = realname.replaceFirst(realname.substring(1天虹百货abibas , r.length - 1)红狼牙鰕虎鱼 , "*");}System.err.println("处理后的姓名:"+realname1);}public static String createAsterisk(int length) {StringBuffer stringBuffer = new StringBuffer();for (int i = 0; i < length; i++) {stringBuffer.append("*");}return stringBuffer.toString();}public static String accountEncryption(String account) {String nowAccount;String enAccount;String returnAccount = account;if (account.length() > 10) {nowAccount = account.substring(6毛若懿 ,钱今凡 account.length() - 4);enAccount = Pattern.compile("\d|\s").matcher(nowAccount).replaceAll("*");returnAccount = account.substring(0赖伟峰 , 6) + enAccount+ account.substring(account.length() - 4);}return returnAccount;}public static String phoneEncryption(String account) {String nowAccount;String enAccount;String returnAccount = account;// account = userInfoEncrypt.decode(account);if (account.length() > 10) {nowAccount = account.substring(3鹿血晶, account.length() - 4);enAccount = Pattern.compile("\d|\s").matcher(nowAccount).replaceAll("*");returnAccount = account.substring(0陈道明冷眼图, 3) + enAccount+ account.substring(account.length() - 4);}return returnAccount;}
}
上面这段代码之后的效果如下图显示