//type:1表示字符串加密。2表示字符串解密。
public String encryptionAndDecryption (String type,String field){
if(field == null || ("").equals(field.trim())){
return field;
}
if("1".equals(type)){
BASE64Encoder encoder = new BASE64Encoder();
String encode = encoder.encode(field.getBytes());
return encode;
}else if("2".equals(type)){
BASE64Decoder decoder = new BASE64Decoder();
try {
String decode = new String ( decoder.decodeBuffer(field));
return decode;
} catch (IOException e) {
e.printStackTrace();
}
}
return field;
}
//1表示时间加密。2表示时间解密。
public Date encryptionAndDecryptionToDate (String type,Date field){
if(field == null){
return field;
}
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(field);
if("1".equals(type)){
calendar.add(calendar.YEAR, 68);
Date date = calendar.getTime();
return date;
}else if("2".equals(type)){
calendar.add(calendar.YEAR, -68);
Date date = calendar.getTime();
return date;
}
return field;
}
//按照要求进行字段的脱敏显示
//type:1表示 手机号/证件号/出生日期...:开头及末尾各保留2位,中间显示为*;
//type:2表示 邮箱:保留前3个字符和@后面的内容,如:zha**********@sinosoft.com.cn;
//type:3表示 姓名/别名/地址...只展示第一个字符,如张*;
//type:4表示 性别/证件类型/民族/其他:全部显示为*;
public String desensitizationDisplay (String menuPower,String type,String field){
if(field == null || ("").equals(field.trim())){
return field;
}
if("1".equals(type)){
String begin = field.substring(0, 2);
String end = field.substring(field.length()-2, field.length());
String desensitizationLength = desensitizationLength(4,field);
return begin + desensitizationLength + end;
}else if ("2".equals(type)){
String begin = field.substring(0, 3);
String[] strs = field.split("@");
String desensitizationLength = desensitizationLength(3,strs[0]);
String end = strs[strs.length-1];
return begin + desensitizationLength + "@" + end;
}else if("3".equals(type)){
String begin = field.substring(0, 1);
String desensitizationLength = desensitizationLength(1,field);
return begin + desensitizationLength;
}else if("4".equals(type)){
return "*";
}
return field;
}
//根据要保留的字符长度来填充字符串剩余的*
public String desensitizationLength (int length,String field){
String desensitization = "";
for (int i=0;i<field.length()-length;i++){
desensitization+="*";
}
return desensitization;
}
加密解密脱敏展示 使用base64加密
最新推荐文章于 2025-02-27 11:48:38 发布