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

公司网站建设如何摊销asp.net 价格查询网站

公司网站建设如何摊销,asp.net 价格查询网站,怎么去推广一个产品,物流网站如何设计什么是数据脱敏 数据脱敏是指对某些敏感信息#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.w-s-a.com/news/18860/

相关文章:

  • 高中生做网站网页网页制作教程零基础学会
  • 做金融网站有哪些要求WordPress站内搜索代码
  • 济南网站怎么做seowordpress注册发邮件
  • 珠海网站设计平台东莞市手机网站建设平台
  • 网站开发文档合同怎么在wordpress导航条下方加入文字广告链接
  • 网站建设需怎么做有网站怎么做企业邮箱
  • 网站制作流程视频教程小程序多少钱一年
  • 暗网是什么网站花都网站建设哪家好
  • 贵州网站开发流程晋江论坛手机版
  • 网站建设丿金手指谷哥14阿里巴巴官网电脑版
  • 网站开发招聘信息匿名ip访问网站受限
  • 网站转app工具网站规划建设与管理维护大作业
  • flash是怎么做网站的.net购物网站开发
  • 烟台网站建设求职简历品质商城网站建设
  • 做百度外链哪些网站权重高点做网站具备的条件
  • 怎么样用ppt做网站红番茄 网站点评
  • 建设银行河北分行招聘网站哪里能找到网站
  • 兰州营销型网站网站建设收费标准
  • 网站首页动图怎么做自己做网站很难
  • 自建网站如何盈利推广引流最快的方法
  • 网页设计网站结构图怎么弄网站用户 分析
  • 企业手机网站建设策划天津网页设计工作
  • 苏州vr全景网站建设公司怎么讲解网页的制作技术
  • 徐州智能建站怎么做苏州建设网站首页
  • 网站支付功能报价wordpress主页透明
  • asia域名的网站宁波模板建站源码
  • 官网网站怎么做个人网站盈利
  • 青龙桥网站建设网站同时做竞价和优化可以
  • 沭阳建设网站婴儿辅食中企动力提供网站建设
  • 常州做网站的公司济宁网站建设seo