对用户信息显示进行处理,保证用户信息安全,如银行卡卡号,姓名,手机号等

场景:项目中有个地方,用户输入订单号,然后显示对应的用户信息,银行要求我们将对应的用户信息进行处理,以保证用户的信息安全

import java.util.regex.Pattern;

/**
 * @author 作者:代码君小飞
 * @version 创建时间:2018年5月22日 上午10:50:08 
 * 
 */
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, r.length - 1), "*");
}
System.err.println("处理后的姓名:"+realname1);
}


/**
* 姓名加密

* @param length
* @return
*/
public static String createAsterisk(int length) {
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < length; i++) {
stringBuffer.append("*");
}
return stringBuffer.toString();
}


/**
* 卡号显示方式

* @param account
* @return
*/
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;
}


/**
* 手机号显示方式

* @param account
* @return
*/
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;
}

}

上面这段代码之后的效果如下图显示


猜你喜欢

转载自blog.csdn.net/qq_35868412/article/details/80453022