加密解密脱敏展示 使用base64加密

//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

你可能感兴趣的:(ORACAL)