当前位置: 首页 > news >正文

北京鑫旺路桥建设有限公司网站晋中营销型网站建设

北京鑫旺路桥建设有限公司网站,晋中营销型网站建设,网站搭建软件,p2p金融网站建设业务需求 将用户敏感信息脱敏展示到前端是出于保护用户隐私和信息安全的考虑。 敏感信息包括但不限于手机号码、身份证号、银行卡号等#xff0c;这些信息泄露可能导致用户个人信息的滥用、身份盗用等严重问题。脱敏是一种常用的保护用户隐私的方式#xff0c;它的目的是减少…业务需求 将用户敏感信息脱敏展示到前端是出于保护用户隐私和信息安全的考虑。 敏感信息包括但不限于手机号码、身份证号、银行卡号等这些信息泄露可能导致用户个人信息的滥用、身份盗用等严重问题。脱敏是一种常用的保护用户隐私的方式它的目的是减少潜在的风险同时保持一定的用户信息可读性。 比如咱们在选择用户信息以及展示选座信息时用户证件号码的脱敏展示。 常用脱敏规则 替换、重排、加密、截断、掩码 Hutool 工具类实现数据脱敏 Hutool包含的组件 Hutool官方文档https://www.hutool.cn/docs/#/core/%E5%B7%A5%E5%85%B7%E7%B1%BB/%E4%BF%A1%E6%81%AF%E8%84%B1%E6%95%8F%E5%B7%A5%E5%85%B7-DesensitizedUtil dependency groupIdcn.hutool/groupId artifactIdhutool-all/artifactId version5.8.16/version /dependency注意 Hutool 5.x支持JDK8 如果你的项目使用JDK7请使用 Hutool 4.x版本。本文使用的数据脱敏工具类只有在5.6版本以上才提供。 Hutool作为一个Java基础工具类对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装组成各种Util工具类同时提供以下组件         可以根据需求对每个模块单独引入也可以通过引入hutool-all方式引入所有模块本文所使用的数据脱敏工具就是在hutool.core模块。 Hutool支持的脱敏数据类型  Hutool针对数据脱敏业务为不同的敏感数据提供了相应的API来实现脱敏操作现阶段最新版本的Hutool支持的脱敏数据类型如下基本覆盖了常见的敏感信息。 用户id中文姓名身份证号座机号手机号地址电子邮件密码中国大陆车牌包含普通车辆、新能源车辆银行卡 Hutool提供的脱敏方法如下图所示 注意 Hutool 脱敏是通过 * 来代替敏感信息的具体实现是在StrUtil.hide( )方法中如果我们想要自定义隐藏符号则可以把Hutool的源码拷出来重新实现即可。  API演示 /*** 【手机号码】前三位后4位其他隐藏比如135****2210** param num 移动电话* return 脱敏后的移动电话*/public static String mobilePhone(String num) {if (StrUtil.isBlank(num)) {return StrUtil.EMPTY;}return StrUtil.hide(num, 3, num.length() - 4);}/*** 【地址】只显示到地区不显示详细地址比如北京市海淀区****** param address 家庭住址* param sensitiveSize 敏感信息长度* return 脱敏后的家庭地址*/public static String address(String address, int sensitiveSize) {if (StrUtil.isBlank(address)) {return StrUtil.EMPTY;}int length address.length();return StrUtil.hide(address, length - sensitiveSize, length);}/*** 【密码】密码的全部字符都用*代替比如******** param password 密码* return 脱敏后的密码*/public static String password(String password) {if (StrUtil.isBlank(password)) {return StrUtil.EMPTY;}return StrUtil.repeat(*, password.length());} 搭建Jackson序列化体系 现在有了数据脱敏工具类如果前端需要显示数据数据的地方比较多我们不可能在每个地方都调用一个工具类这样就显得代码太冗余了那我们如何通过注解的方式优雅的完成数据脱敏呢 实现思路 在 SpringMVC 返回数据时通过默认的 Jackson 序列化器进行指定替换为咱们已经包装后的序列化器这样就能依赖现有解决方案降低技术复杂度。 代码实现 定义手机号和证件号的 Jackson 自定义序列化器并在对应需要脱敏的敏感字段上指定自定义序列化器。 1身份证号序列化器。 /*** 身份证号脱敏反序列化** 公众号马丁玩编程回复加群添加马哥微信备注12306获取项目资料*/ public class IdCardDesensitizationSerializer extends JsonSerializerString {Overridepublic void serialize(String idCard, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {String phoneDesensitization DesensitizedUtil.idCardNum(idCard, 4, 4);jsonGenerator.writeString(phoneDesensitization);} } 2手机号序列化器。 /*** 手机号脱敏反序列化** 公众号马丁玩编程回复加群添加马哥微信备注12306获取项目资料*/ public class PhoneDesensitizationSerializer extends JsonSerializerString {Overridepublic void serialize(String phone, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {String phoneDesensitization DesensitizedUtil.mobilePhone(phone);jsonGenerator.writeString(phoneDesensitization);} } 3敏感字段上自定义序列化器。 /*** 乘车人返回参数** 公众号马丁玩编程回复加群添加马哥微信备注12306获取项目资料*/ Data Accessors(chain true) public class PassengerRespDTO {/*** 证件号码*/JsonSerialize(using IdCardDesensitizationSerializer.class)private String idCard;/*** 手机号*/JsonSerialize(using PhoneDesensitizationSerializer.class)private String phone; } 完成上述步骤后前端调用 HTTP 请求获取数据时SpringMVC 通过 Jackson 进行序列化数据时操作证件号码和手机号两个字段就会采用咱们自定义的序列化器完成敏感信息脱敏功能。 脱敏数据反脱敏 对接前端的敏感数据脱敏展示功能做到上面这些就已经实现了。但是总感觉哪里不对因为咱们在购票服务中下单接口会调用乘车人详细信息接口获取到手机号、证件号等信息保存入库。 如果我在后端服务里去调用乘车人的信息接口那岂不是也是脱敏的这样的话存储到数据库的数据就不准确了期望是真实的数据但是实际是脱敏后的。为此我们需要想办法把自己脱敏后的数据还原回来这里介绍几种思路 Redis缓存原始数据 将脱敏后的数据和一个随机id一起封装为个对象一起传给前端我在redis中以这个id为key未脱敏值为value当前端需要基于脱敏数据进行相关操作就传个id过来让我后端在redis找到该数据的原始态 这种方案比较适用于脱敏数据较少的情况一般对于这种敏感数据展示的需求是比较少的但是为了实现这么个反脱敏的操作我得浪费一大块缓存取时刻保持一份热点也许相对较小的数据一个项目的用户量上来了他们的手机号、身份证号等等敏感数据越来越多那这样子缓存的占比也越来越大。 对称算法加解密 这种模式的脱敏就不是运用我们前面提到的替换操作而是一种对称加解密的过程将敏感数据采用一个对称算法加密后传输给前端前端将其传入到后端后再凭借对称解密的方式还原原始数据。 这种方式优点在于对称加密算法可以提供较高的安全性只有持有密钥的人才能解密敏感数据降低了数据泄露的风险。并且对称加解密算法通常具有较高的执行效率可以快速地对数据进行加解密操作。但是缺点也很明显由于对称加解密方式是全盘加密和解密无法对敏感数据进行细粒度的控制比如只加密部分字段或片段。并且有被拦截通过一些工具进行解码风险从而泄露数据。 总结 本文主要介绍了数据脱敏的相关内容首先介绍了数据脱敏的概念在此基础上介绍了常用的数据脱敏规则随后介绍了本文的重点Hutool工具及其使用方法在此基础上进行了实操分别演示了使用DesensitizedUtil工具类、配合Jackson通过注解的方式完成数据脱敏最后介绍了一些常见的数据反脱敏方法本文内容如有不当之处还请大家批评指正。
http://www.dnsts.com.cn/news/170673.html

相关文章:

  • 港闸网站建设制作莆田网站建设建站系统
  • 天津黑曼巴网站建设宝安做棋牌网站建设哪家技术好
  • 网站建设与设计方案昆明调整高风险地区
  • 网站建设奖项互联网网站开发发展
  • 在平台企业网站推广怎么做做网站什么样的域名好
  • 海宁住房和城乡规划建设局网站交互设计师工资一般多少
  • 百度创意产品网站二手房在哪个网站做合同
  • 鲜花网站建设结构布局上海网站建设一般多少钱
  • 网站备案的幕布是什么来的wordpress中国风
  • 淘宝网站推广工具建湖网站建设
  • 响应式网站和展示式区别工程合同模板
  • 聚美优品网站怎么做的wordpress标题标签
  • 怎么做网盘网站商城网站建设论坛
  • 东莞长安做网站正规的网店代运营
  • 黄页网站软件下载免费app做网站的那些高清图上哪里找
  • 网上怎么自己做网站怎么用壳域名做网站
  • 网站开发一年多少钱青海网站制作哪家好
  • 北京高端网站建设咸阳asp网站怎么做404页面跳转
  • html5网站制作编辑源码wordpress 一级目录下
  • 网站建设算什么行业行业网站产品选择
  • 金华网站建设公司沈阳有做网站的吗
  • 网站改版的方式品牌网站建设策划
  • 为什么做可信网站视频拍摄培训
  • 网站添加cmsjz做网站
  • seo关键词推广渠道优化大师怎么下载
  • 网站开发薪水一般多少济宁 创意大厦 网站建设
  • 织梦可以做视频网站么做网站服务器配置应该怎么选
  • 做一个网站的基本步骤vr看房制作软件
  • 做技术网站赚钱吗app如何推广以及推广渠道
  • 地方门户网站盈利模式wordpress文件功能详解