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

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

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;
}

}

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值