java中对数据进行脱敏操作(证件号,手机号,移动电话,邮箱)
**敏感信息处理包括:
/*要考虑到证件号是否为身份证号或者学生证,因为数字位数不同全部按身份证的方式托面,第三位至最后四位都进行脱敏操作*/1.证件号非空时第3位到第14位显示时以*号代替2.移动电话非空时第2位-第7位显示时以*号代替3.手机号非空时将中间数字进行脱敏4.邮箱非空时除前3位其他以*处理**
编码书写
userinfo //用户对象CertificateNo //证件号Email //邮箱Mobile //移动电话Telephone //电话号private Userinfo getUserinfoDesensitize(Userinfo userinfo){//*符号个数String star = "";//证件号码if(userinfo.getCertificateNo()!=null&&!("".equals(userinfo.getCertificateNo()))){int CertificateNoLength = userinfo.getCertificateNo().length();//获取当前的证件号码的长度for (int i = 0; i < CertificateNoLength-7; i++) {//获取*的长度,因为前三位和最后四位不需要脱敏,所以长度-7star += "*";}//取最后四位//总长度-(总长度-(总长度-需要脱敏的位数)-开头不要需要脱敏的长度)//这个获取的就时末尾不需要脱敏的位数,因为证件号长度不确定,所以需要动态获取int four = CertificateNoLength - (CertificateNoLength-(CertificateNoLength-7)-3);userinfo.setCertificateNo(userinfo.getCertificateNo().substring(0,3)+star+userinfo.getCertificateNo().substring(four,CertificateNoLength));star = "";//最后将符号清空,便于下一个字段使用}//邮箱if(userinfo.getEmail()!=null&&!("".equals(userinfo.getEmail()))){int emailLength = userinfo.getEmail().length()-3;for (int i = 0; i < emailLength; i++) {star += "*";}userinfo.setEmail(userinfo.getEmail().substring(0,3)+star);star = "";}//移动电话if(userinfo.getMobile()!=null&&!("".equals(userinfo.getMobile()))){//正则表达式 进行脱敏第一位不需要脱敏 中间六位需要脱敏 最后四位不需要脱敏//中间的*符号我这个是写死的,不管多少位数字,只显示六位 * userinfo.setMobile(userinfo.getMobile().replaceAll("(\\d{1})\\d{6}(\\w{4})","$1******$2"));}//电话号码if(userinfo.getTelephone()!=null&&!("".equals(userinfo.getTelephone()))){int telePhoneLength = userinfo.getTelephone().length();//获取最后三位的位置int three = telePhoneLength-(telePhoneLength-(telePhoneLength-3)-1);for (int i = 0; i < telePhoneLength; i++) {star += "*";}userinfo.setTelephone(userinfo.getTelephone().substring(0,3)+star+userinfo.getTelephone().substring(three,telePhoneLength));star = "";}return userinfo;}
java中对数据进行脱敏操作(证件号,手机号,移动电话,邮箱)相关推荐
- Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询* @param userId* @return 如果存在返回 ...
- 第69节:Java中数据库的多表操作
第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...
- java mysql单库多表_第69节:Java中数据库的多表操作
第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...
- java中有关文件流的操作
文件流: 顾名思义,程序和文件打交道. 此时我们谈及的文件,值得是纯文本文件(txt的,不要使用Word,Excel), 在字节流中,暂时不要使用中文. FileInputStream: 文件的字节输 ...
- mongo java 注解,在Java中使用Spring Data MongoDB操作Mong | zifangsky的个人博客
前言:在上一篇文章中(PS:https://www.zifangsky.cn/923.html)我简单介绍了如何在Linux中安装MongoDB以及MongoDB的增删改查等基本命令用法(PS:更多M ...
- 如何查询MySQL表中的数据,这些操作你得明白!
前言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...
- java连接本地数据库命令_Java操作数据库时一次连接只能执行一条SQL命令
Java操作数据库时一次连接只能执行一条SQL命令 答:× 全面深化改革要攻坚涉险,必须坚持正确的思想方法,不断探索和把握全面深化改革的内在规律,特别是要把握和处理好全面深化改革中的等重大关系 答:整 ...
- Java中的数据文件
Java中的配置文件 Java自己的配置文件 – properties properties文件的编写 一般情况下,建议将文件存储在源码文件目录中 他的格式是 键值对 如:age=18 特别注意,不能 ...
- 利用redis缓存对 list集合中的数据 进行分页操作(一)
先说 存储的结构: 这里做了两块缓存 绿色是存储索引的缓存 黑色是存数据的缓存 翻页时需要两个参数 向上查询/或向下查询 还一个是 从第二页开始查询时需要一个索引的参数 有了这两个参数 ...
最新文章
- python3.7.4安装教程桌面_Python 3.7.4 for Windows的安装
- 团队-团队编程项目作业名称-模块测试过程
- 破解百度网盘的Pandownload开发者被捕,让人唏嘘
- ue4导入倾斜摄影_倾斜摄影建模干货|还怕搞不定CC空三?这里只要5分钟……
- 有关计算机组成原理知识的论文,关于计算机组成原理的论文_计算机组成原理_图灵机的组成...
- python解包的概念_Python学习第176课——tar解包和压缩
- Fatal Error[Pe1696]:cannot open source file “sys.h”
- python call agilent com_PyVISA通过RS232(USB)与安捷伦34970A通信时出现超时错误
- 鸿蒙os硬件要求,华为公布鸿蒙OS 2.0硬件安装要求:只要128K内存就能跑
- php 微信分享链接怎么弄,PHP实现 微信--分享朋友链接
- Openlayer 3 最简单的弹出框
- javascript设计模式 ---序
- MemSQL分布式架构介绍(二)
- CentOS7.5 怎么修改默认SSH端口号
- 不会写原创文章,在线洗稿软件能处理吗
- 【kubernetes/k8s概念】CNI详解
- QQ群发消息怎么发?最全攻略分享
- 风火牙疼,紧急止痛、快速治疗的真实历程
- 电脑安装win10系统
- 【19调剂】北京语言大学 智能语音习得技术实验室 -调剂信息