Java字符串脱敏处理:将信息用*号代替

package com.learn.utils;

import org.apache.commons.lang.StringUtils;

public class ToMask {
	
	public static void main(String[] args) {
		  String num = "13520096531";
		  String s1 = StringUtils.right(num, 4);
		  System.out.println(s1);
		  String s2 = StringUtils.leftPad(s1, StringUtils.length(num), "*");
		  System.out.println(s2);
		  String s3 = StringUtils.removeStart(s2,"***");
		  System.out.println(s3);
		  String s4 = StringUtils.left(num, 3).concat(s3);
		  System.out.println(s4);
		  //System.out.println(StringUtils.left(num, 3).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(num, 4), StringUtils.length(num), "*"), "***")));
		  
		  String num1 = "13520096531";
		  String d1 = StringUtils.right(num1, 4);
		  String d2 = StringUtils.center(d1, 11, "*");
		  System.out.println(d2);
	}

}
6531
*******6531
****6531
135****6531
***6531****
https://www.cnblogs.com/sgjyzj/p/11028461.html

JAVA注解的字段脱敏处理
package com.learn.utils;

import org.apache.commons.lang.StringUtils;

public class ToMask {
	
	public static void main(String[] args) {
//		  String num = "13520096531";
//		  String s1 = StringUtils.right(num, 4);
//		  System.out.println(s1);
//		  String s2 = StringUtils.leftPad(s1, StringUtils.length(num), "*");
//		  System.out.println(s2);
//		  String s3 = StringUtils.removeStart(s2,"***");
//		  System.out.println(s3);
//		  String s4 = StringUtils.left(num, 3).concat(s3);
//		  System.out.println(s4);
//		  //System.out.println(StringUtils.left(num, 3).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(num, 4), StringUtils.length(num), "*"), "***")));
//		  
//		  String num1 = "13520096531";
//		  String d1 = StringUtils.right(num1, 4);
//		  String d2 = StringUtils.center(d1, 11, "*");
//		  System.out.println(d2);
//		String str = "1中国18826530506你好";
//		String str = "18975979967";
//		System.out.println(str);
//		String newStr = showStartAndEnd(str, 4, 2);
//		System.out.println(newStr);
		String str = "1中国3520096531中国";
		showStartAndEnd(str,4,6);
	}
	
	public static void showStartAndEnd(String str,int startNum,int endNum) {		  
		  System.out.println(str);
		  String s1 = StringUtils.right(str, endNum);
		  String s2 = StringUtils.leftPad(s1, StringUtils.length(str), "*");
		  StringBuilder sb = new StringBuilder();
		  for(int i=0;i<startNum;i++) {
			  sb.append("*");
		  }
		  String s3 = StringUtils.removeStart(s2, sb.toString());
		  String s4 = StringUtils.left(str, startNum).concat(s3);
		  System.out.println(s4);
	}

}
java数据脱敏,简单形式分为3类:
一、保留前n位
二、保留后m位

三、保留前n位+保留后m位。

类主要是仨函数:

DesensitizeUtil

只显示第一个汉字,其他隐藏为2个星号<例子:李**>
 public static String left(String fullName,int index) 

[身份证号] 110****58,前面保留3位明文,后面保留2位明文
public static String around(String name,int index,int end)

[固定电话] 后四位,其他隐藏<例子:****1234>
public static String right(String num,int end) 

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值