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

深圳做装修网站费用汽车行业网站建设比较

深圳做装修网站费用,汽车行业网站建设比较,做网站空间百度云和阿里云区别,湘乡新闻头条什么是数据脱敏 数据脱敏是指对某些敏感信息#xff0c;例如姓名、身份证号码、手机号、固定电话、银行卡号、邮箱等个人信息#xff0c;通过脱敏算法进行数据变形#xff0c;以保护敏感隐私数据。 数据脱敏通常涉及以下几种主要方法#xff1a; 替换#xff1a; 将原始…什么是数据脱敏 数据脱敏是指对某些敏感信息例如姓名、身份证号码、手机号、固定电话、银行卡号、邮箱等个人信息通过脱敏算法进行数据变形以保护敏感隐私数据。 数据脱敏通常涉及以下几种主要方法 替换 将原始数据中的敏感信息替换为不敏感的等效数据。例如将真实姓名替换为随机生成的名称将电话号码替换为虚构的号码。扰动 对数据进行微小的变化以使其仍然保持某种程度的统计一致性但不足以使个人身份可被轻松识别。这包括添加噪声或对数值进行微小的随机化。屏蔽 将敏感信息从数据中删除或隐藏。例如用特定字符或占位符替换敏感文本。一般化 减少数据的精确度使得数据更加模糊。例如将年龄精确到天数的数据一般化为年龄范围。删除 完全删除不必要的敏感信息。 Spring Boot自定义注解实现数据脱敏 依赖版本 JDK 17 Spring Boot 3.2.0 Hutool-core 5.8.24 非必须 源码地址Gitee 导入依赖 dependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcn.hutool/groupIdartifactIdhutool-core/artifactIdversion5.8.24/version/dependency /dependencies自定义脱敏类型枚举 /*** description 数据脱敏策略枚举*/ public enum DesensitizationTypeEnum {//自定义CUSTOM,//用户idUSER_ID,//中文名CHINESE_NAME,//身份证号ID_CARD,//座机号FIXED_PHONE,//手机号MOBILE_PHONE,//地址ADDRESS,//电子邮件EMAIL,//密码PASSWORD,//中国大陆车牌包含普通车辆、新能源车辆CAR_LICENSE,//银行卡BANK_CARD }自定义脱敏序列化器 import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.DesensitizedUtil; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.yiyan.study.annotation.Desensitization; import com.yiyan.study.enums.DesensitizationTypeEnum; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor;import java.io.IOException; import java.util.Objects;/*** description 自定义脱敏序列化类*/ AllArgsConstructor NoArgsConstructor public class DesensitizationSerialize extends JsonSerializerString implements ContextualSerializer {private DesensitizationTypeEnum type;private Integer startInclude;private Integer endExclude;Overridepublic void serialize(String str, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {switch (type) {// 自定义类型脱敏case CUSTOM - jsonGenerator.writeString(CharSequenceUtil.hide(String.valueOf(str), startInclude,endExclude startInclude ? endExclude : str.length() endExclude));// userId脱敏case USER_ID - jsonGenerator.writeString(String.valueOf(DesensitizedUtil.userId()));// 中文姓名脱敏case CHINESE_NAME - jsonGenerator.writeString(CharSequenceUtil.hide(String.valueOf(str), 1, str.length()));// 身份证脱敏case ID_CARD - jsonGenerator.writeString(DesensitizedUtil.idCardNum(String.valueOf(str), 1, 2));// 固定电话脱敏case FIXED_PHONE - jsonGenerator.writeString(DesensitizedUtil.fixedPhone(String.valueOf(str)));// 手机号脱敏case MOBILE_PHONE - jsonGenerator.writeString(DesensitizedUtil.mobilePhone(String.valueOf(str)));// 地址脱敏case ADDRESS - jsonGenerator.writeString(DesensitizedUtil.address(String.valueOf(str), 8));// 邮箱脱敏case EMAIL - jsonGenerator.writeString(DesensitizedUtil.email(String.valueOf(str)));// 密码脱敏case PASSWORD - jsonGenerator.writeString(DesensitizedUtil.password(String.valueOf(str)));// 中国车牌脱敏case CAR_LICENSE - jsonGenerator.writeString(DesensitizedUtil.carLicense(String.valueOf(str)));// 银行卡脱敏case BANK_CARD - jsonGenerator.writeString(DesensitizedUtil.bankCard(String.valueOf(str)));}}Overridepublic JsonSerializer? createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {if (beanProperty ! null) {// 判断数据类型是否为String类型if (Objects.equals(beanProperty.getType().getRawClass(), String.class)) {// 获取定义的注解Desensitization desensitization beanProperty.getAnnotation(Desensitization.class);if (desensitization null) {desensitization beanProperty.getContextAnnotation(Desensitization.class);}if (desensitization ! null) {return new DesensitizationSerialize(desensitization.type(), desensitization.startInclude(),desensitization.endExclude());}}return serializerProvider.findValueSerializer(beanProperty.getType(), beanProperty);}return serializerProvider.findNullValueSerializer(null);} }自定义脱敏注解 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.yiyan.study.enums.DesensitizationTypeEnum; import com.yiyan.study.serialize.DesensitizationSerialize;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 脱敏注解*/ Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) JacksonAnnotationsInside JsonSerialize(using DesensitizationSerialize.class) public interface Desensitization {/*** 脱敏数据类型CUSTOM注解下startInclude和endExclude生效*/DesensitizationTypeEnum type() default DesensitizationTypeEnum.CUSTOM;/*** 脱敏开始位置包含*/int startInclude() default 0;/*** 脱敏结束位置不包含*/int endExclude() default 0; }数据脱敏测试 定义测试对象 import com.yiyan.study.annotation.Desensitization; import com.yiyan.study.enums.DesensitizationTypeEnum; import lombok.Builder; import lombok.Data;import java.io.Serializable;Data Builder public class DesensitizationDTO implements Serializable {Desensitization(type DesensitizationTypeEnum.CHINESE_NAME)private String username;Desensitization(type DesensitizationTypeEnum.EMAIL)private String email;Desensitization(type DesensitizationTypeEnum.ADDRESS)private String address;Desensitization(type DesensitizationTypeEnum.MOBILE_PHONE)private String phoneNumber;Desensitization(type DesensitizationTypeEnum.CUSTOM, startInclude 1, endExclude -2)private String note; }测试接口 import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.yiyan.study.model.DesensitizationDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;/*** 启动类*/ SpringBootApplication Slf4j RestController public class DesensitizationApplication {private static final DesensitizationDTO dto com.yiyan.study.model.DesensitizationDTO.builder().username(小李).phoneNumber(12300000456).email(ligmail.com).address(XX.YY.DD.FF).note(123456789).build();public static void main(String[] args) throws JsonProcessingException {SpringApplication.run(DesensitizationApplication.class, args);ObjectMapper mapper new ObjectMapper();String s mapper.writeValueAsString(dto);log.info(Json : {}, s);}GetMapping(/test)public DesensitizationDTO desensitizationTest() {return dto;} }
http://www.hkea.cn/news/14262390/

相关文章:

  • 模板手机网站建设临沂网站制作案例
  • 虫部落导航网站怎么做网站导入链接
  • 网站做网站泉州做网站设计公司
  • 网站上面带官网字样怎么做的外贸网站APP
  • 建站套餐开办网站需要什么资质
  • 青海城乡建设部网站阿里云申请域名做网站
  • 看房自己的网站建设多少钱免费大型网站
  • 酒店专业培训网站建设伯维网站建设
  • 信用泰安网站旅游网页设计免费模板
  • 加盟网站模板网络营销的特点包括超前性
  • 网站建设代理政策网络营销方式单一
  • 个人内网网站建设网站优化关键词公司
  • 自定义短网址seo排名咨询
  • 那个网站做720度效果图网站的作用和意义
  • 网站开发学费广告联盟赚钱app
  • 网站建设总体规划包括杭州临平网站建设
  • 域名注册网站有哪些东莞公共资源交易中心
  • 做书的网站有哪些内容c2c电子商务的网站
  • 上海青浦网站建设公司网站推广初期目标
  • 一个网站的页头大概做多大官网设计费用报价
  • cms网站群小说网站怎么做空间小
  • 网站广告是内容营销吗盐城市住房城乡建设网站
  • 黑龙江省华龙建设有限公司网站烟台建设
  • 做众筹网站要什么资质WordPress防伪证书插件
  • 简述网站建设的概念网站建设与网页设计美食
  • 自己搭建个人网站的注意事项上海网站建设网页制作培训
  • 陕西建设系统个人信息查询网站公司产品推广方案
  • 室内设计网站都有哪些平台设计之路 网站
  • 河北省建设集团有限公司网站首页wordpress茶叶模板
  • 一个完整网站制作的实例WordPress主题自定义里内容