前言

  在开发系统过程中,经常会接触到大量的数据信息,这些数据信息可能包含身份证号、手机号、姓名、卡号等各种敏感信息。而有些用户需求是不允许,这些敏感信息数据为了保护用户个人信息的安全。对这些数据需要进行特殊处理。

数据脱敏
  数据脱敏,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。

DesensitizedUtil工具类
  我们在系统开发和数据清洗过程中,经常某些数据需要经过加密或者脱敏之后进行传输。将这些敏感数据在后台脱敏之后,发送给前端展示,就能避免敏感数据信息的泄露。那么今天给大家介绍一个基于hutool的工具类DesensitizedUtil。

目前类DesensitizedUtil工具类实现的脱敏数据类型包括以下内容:

  • 用户id
  • 中文姓名
  • 身份证号
  • 座机号
  • 手机号
  • 地址
  • 电子邮件
  • 密码
  • 中国大陆车牌,包含普通车辆、新能源车辆
  • 银行卡

DesensitizedUtil工具类实现的主要原理是将需要隐藏掉的信息用*号代替即可。

用户id脱敏
  用户id脱敏后,默认返回了0,数据类型是long类型。

  • 脱敏前:22222
  • 脱敏后:0
import cn.hutool.core.util.DesensitizedUtil;//用户id
Long aLong = DesensitizedUtil.userId();
System.out.println(aLong);
输出结果:0

用户姓名脱敏
  用户姓名脱敏,默认返回姓氏,也就是只返回姓名的第一个字,其他的信息隐藏,数据类型是String类型。

  • 脱敏前:天将降大任于斯人也
  • 脱敏后:天****
//用户姓名
String userName = DesensitizedUtil.chineseName("掘金社区");
System.out.println(userName);
输出结果:掘***

身份证号脱敏
  身份证号敏,需要传递三个参数,第一个是身份证号码,第二个是首部需要显示的号码数量,从1开始,第三个是尾部需要显示的号码数量也是从1开始,数据返回类型是String类型。

  • 脱敏前:430452145214515412
  • 脱敏后:4304********5412
//身份证号
String idCardNum = DesensitizedUtil.idCardNum("430452145214515412",4,4);
System.out.println(idCardNum);
输出结果:4304********5412

座机号脱敏
  座机号脱敏后,前四位后两位显示,其他都隐藏,返回数据类型是String类型。

  • 脱敏前:010-12345678
  • 脱敏后:010-******78
//座机号
String fixedPhone = DesensitizedUtil.fixedPhone("010-12345678");
System.out.println(fixedPhone);
输出结果:010-******78

手机号脱敏
  手机号脱敏后,前三位,后4位显示,其他都隐藏,返回数据类型是String类型。

  • 脱敏前:18612345678
  • 脱敏后:186****5678
//手机号
String mobilePhone = DesensitizedUtil.mobilePhone("18612345678");
System.out.println(mobilePhone);
输出结果:186****5678

地址脱敏
  地址脱敏后只显示到地区,不显示详细地址,其他都隐藏,可以设置敏感信息长度,返回数据类型是String类型。

  • 脱敏前:北京市东城区建国路1000号
  • 脱敏后:北京市东城区建国******
//地址
String address = DesensitizedUtil.address("北京市东城区建国路1000号",6);
System.out.println(address);
输出结果:北京市东城区建国******

电子邮件脱敏
  地址脱敏后只显示到地区,不显示详细地址,其他都隐藏,可以设置敏感信息长度,返回数据类型是String类型。

  • 脱敏前:123456@qq.com
  • 脱敏后:1*****@qq.com
 //电子邮件
String email = DesensitizedUtil.email("123456@qq.com");
System.out.println(email);
输出结果:1*****@qq.com

密码脱敏
  地址脱敏后只显示到地区,不显示详细地址,其他都隐藏,可以设置敏感信息长度,返回数据类型是String类型。

脱敏前:18612345678
脱敏后:***********

 //密码
String password = DesensitizedUtil.password("18612345678");
System.out.println(password);
输出结果:***********

车牌脱敏
  地址脱敏后只显示到地区,不显示详细地址,其他都隐藏,可以设置敏感信息长度,返回数据类型是String类型。

脱敏前:18812345678
脱敏后:***********

//车牌
String carLicense = DesensitizedUtil.carLicense("18612345678");
System.out.println(carLicense);
输出结果:***********

银行卡号脱敏
  地址脱敏后只显示到地区,不显示详细地址,其他都隐藏,可以设置敏感信息长度,返回数据类型是String类型。

脱敏前:6666669578938888
脱敏后:6666 **** **** 8888

//银行卡号
String bankCard = DesensitizedUtil.bankCard("6666669578938888");
System.out.println(bankCard);
输出结果:6666 **** **** 8888

结语

  好了,以上就是基于DesensitizedUtil信息脱敏工具的介绍,感谢您的阅读,希望您喜欢,如对您有帮助,欢迎点赞收藏。如有不足之处,欢迎评论指正。下次见。

【linlong】Hutool工具,身份证号、手机号、姓名等数据脱敏信息工具类介绍相关推荐

  1. 【收藏】身份证号、手机号、姓名等数据脱敏信息工具类介绍

    前言   在开发系统过程中,经常会接触到大量的数据信息,这些数据信息可能包含身份证号.手机号.姓名.卡号等各种敏感信息.为了保护用户个人信息的安全.对这些数据需要进行特殊处理. 数据脱敏   数据脱敏 ...

  2. 前端利用正则对手机号码,身份证号,姓名进行脱敏处理

    前端利用正则对手机号码,身份证号,姓名进行脱敏处理 一.脱敏规则 手机号码:第4到第7位用掩码替换 身份证号:第7-14位用掩码替换 姓名:保留姓,名(无论一位或两位)统一用一个*替换 二.脱敏方法 ...

  3. 拆分文字与数字(身份证号和姓名)批量拆分

    拆分文字与数字(身份证号和姓名)批量拆分 第一步,提取文字,在空白格处输入公式 =LEFT(A2,LENB(A2)-LEN(A2)) 第二步,提取数字,在空白格处输入公式 =RIGHT(A2,(2*L ...

  4. 网易有道IP,身份证号, 手机号归属地API查询接口

    网易有道IP,身份证号, 手机号归属地API查询接口 http://www.youdao.com/smartresult-xml/search.s?type=ip&q=ip地址 GET后返回X ...

  5. 利用python识别身份证号后获取年龄和性别信息

    利用python识别身份证号后获取年龄和性别信息 1. 实验目的 利用python识别身份证号后,从身份证号中获取年龄和性别信息 2. 主代码 1. 身份证号码识别 # !/usr/bin/pytho ...

  6. 根据身份证号或营业执照编号取省市区信息

    根据身份证号或营业执照编号取省市区信息 代码为c#,原始的编码与地区对应信息用xml存放(不完全正确,但不影响使用),读取处理后放到hastable,可根据需要改写,这里只是个示范 /// <s ...

  7. 手机号,身份证号,姓名等校验

    校验是经常用到的一块,这里收录了最新的校验规则,欢迎大家参考. 这里以easyui案例为例,第一块图片时整个: 这样一个校验就算完成了. 英文和数字: /^[A-Za-z0-9]+$/ 姓名: /^[ ...

  8. 正则表达式验证手机号 身份证号 银行卡号 姓名输入

    手机号验证var mobile = /^1[3|4|5|7|8]\d{9}$/;mobile.test(value);生日格式转换'20171102'.replace(/^(\d{4})(\d{2}) ...

  9. 常用的正则表达式(手机号,身份证号,姓名)

    手机号 if (!(/^1[345678]\d{9}$/.test(mobile))) {alert("请输入正确的手机号");return} /^1[345678]\d{9}$/ ...

最新文章

  1. 从Java类库看设计模式
  2. FOSCommentBundle功能包:设置Doctrine ODM映射(投票)
  3. Servlet基本概念及执行流程
  4. Java实现单链表反转操作
  5. 剪了 20% 的刘海、120Hz 刷新率、1TB 存储,iPhone 13 来了!
  6. cocos2dx动画Animation介绍
  7. svn:Cannot negotiate authentication mechanism
  8. UEditor应用 —— 图片上传
  9. 进程间通信的11种方法
  10. ROW_NUMBER() OVER()函数用法;(分组,排序),partition by (转)
  11. 适配器模式(Adapter Pattern)
  12. 软件测试面试技术方法(一)
  13. Canon EOS Utility安装和使用说明
  14. M1 Macbook安装MATLAB
  15. 决策树分析例题经典案例_分析模型案例解析:决策树分析法
  16. 百词斩不复习_不背单词好用还是百词斩好用?
  17. 2015年国际数学奥林匹克(IMO)试题
  18. STM32H7 ADC hal库
  19. 单反相机风景摄影易记易学口诀
  20. PCA(Principal Components Analysis)

热门文章

  1. spring boot集成ehcache 2.x 用于hibernate二级缓存
  2. Linux df -lh 查不到新添加的硬盘
  3. 如何使用Stack Overflow
  4. 加速AI工业化 百度云智峰会发布20大新品
  5. 什么是mock数据、mock数据使用步骤
  6. 《网络是怎么样连接的》- 集线器、路由器和路由器
  7. 客快物流大数据项目(六十六):车辆主题
  8. 用计算机放光碟,怎么用电脑放光碟教?
  9. HtmlEncode、UrlEncode区别
  10. Object.key()