需求分析 处理字段的方式多种多样,如何方便,高效才是关键,众所周知在java中最好的处理方式就是封装,即,对程序员暴露出的最好是一个统一的API,不关心具体的处理逻辑,能拿到想要的返回值就好。...实现第二版 由于在RPC调用过程当中,大部分接口的参数封装数据类型都是Map,但是部分接口还是使用Java Bean所以在此针对Java Bean形式实现日志脱敏功能 实现思路: 根据不同的数据类型进行不同判断...(person); System.out.println("脱敏后:" + converent2); } 第二版实现测试结果 针对Map实现的脱敏结果 脱敏前:{certNo=...,"custName":"小*儿"} 针对Object实现的脱敏结果 脱敏前:Person{custName='小妮儿真可爱!'...完整代码请参考Github https://github.com/dwyanewede/project-learn/tree/master/src/main/java/com/learn/demo/desensitization
核心代码: 定义用于标识脱敏字段的注解 Desensitized.java @Target({ElementType.FIELD, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME...(); /*判断注解是否生效的方法*/ String isEffictiveMethod() default ""; } 脱敏类型 SensitiveTypeEnum.java public...enum SensitiveTypeEnum { /** 中文名 */ CHINESE_NAME, /** 身份证号 */ ID_CARD, /** 座机号 *...DesensitizedUtils.java public class DesensitizedUtils { /** * 获取脱敏json串 * * @param...——基于Java自定义注解实现日志字段脱敏》】
本文将深入探讨数据脱敏的概念、法律依据、脱敏技术,以及在业务中的应用场景。 什么是数据脱敏?...信息安全技术个人信息脱敏规范 由国家信息安全标准化技术委员会颁布的《信息安全技术个人信息脱敏规范》为数据脱敏提供了详细的技术规范和操作指南,对企业在实施数据脱敏时提供了标准化的指导。...数据脱敏技术 替换 替换是一种基础而有效的脱敏技术。通过将敏感数据替换为虚拟数据,例如将真实姓名替换为“用户A”,以达到保护隐私的目的。...原始数据:真实基因序列 脱敏后数据:模拟基因序列 随机化 随机化是通过引入随机元素,对数据进行随机变换,增加了数据的多样性,提高了脱敏的效果。...原始数据:用户地址 脱敏后数据:随机生成的地址 数据脱敏的业务应用场景 金融行业 在金融领域,客户的个人信息和交易数据极为敏感。
---- 数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。 百度百科对数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。...在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。...改姓名,身份证号,地址,手机号,电话号码等几个客户相关字段。 三、如何实现数据脱敏 ---- 按照脱敏规则,可以分为可恢复性脱敏和不可恢复性脱敏。...我们目前遇到的场景是日志脱敏,即在把日志中的密码,甚至姓名、身份证号等信息都进行脱敏处理。 脱敏前: ? 脱敏后: ?...---- 【 转载请注明出处——胡玉洋《数据脱敏——什么是数据脱敏》】
如前文《静态脱敏典型应用场景分析——开发测试、数据共享、科学研究》所说,当前数据脱敏产品主要包括静态脱敏、动态脱敏产品两类。由于两者使用场景不同,关键技术有所差异。...动态脱敏常用在访问敏感数据即时进行脱敏,一般用来解决在生产环境需要根据不同情况对同一敏感数据读取时进行不同级别脱敏的场景,如业务脱敏、运维脱敏、数据交换脱敏等场景。...业务脱敏 场景特点 ❏ 业务用户访问应用系统时,需明确用户身份的真实性。 ❏ 不同权限业务用户访问敏感数据时需采取不同级别的脱敏规则。...❖ 支持基于敏感标签的脱敏访问策略,支持 B/S、 CS 等不同架构的业务系统、支持对字符串类型、数据类型、日期类型数据脱敏,通过随机、转换、遮盖方式实现对动态数据的脱敏效果,防止业务敏感数据信息和业务的个人隐私数据泄漏...美创数据脱敏系统内置敏感数据发现引擎,对源数据中的敏感数据按照脱敏规则,进行变形、漂泊、遮盖,保证脱敏后的数据保持数据的一致性和业务的关联性,应用于开发测试环境、数据交换、数据分析、数据共享等场景。
由于网络实名制等原因,身份证号+手机号是我国网络运营者普遍收集的两类常见个人隐私数据。一般来说,企业在二次利用身份证号等隐私数据时,通常会对其进行脱敏处理。...图7 身份证号3个分段的频率分布 1.2 脱敏数据集 为了评估常见脱敏方法与规则的脱敏效果,下面选择了8种脱敏规则并且得到相应的8种不同的脱敏数据集。...脱敏规则Rule1:手机号(屏蔽中间4位)+身份证号(屏蔽出生年份4位) 脱敏规则Rule2:手机号(屏蔽中间4位)+身份证号(屏蔽出生日期8位) 脱敏规则Rule3:手机号(屏蔽最后8位)+身份证号(...屏蔽出生日期8位) 脱敏规则Rule4:手机号(屏蔽最后8位)+身份证号(屏蔽最后12位) 脱敏规则Rule5:手机号(只保留前3位)+身份证号(只保留前两位) 脱敏规则Rule2-c:手机号(屏蔽最后...4位)+身份证号(屏蔽出生日期8位) 脱敏规则Rule3-c:手机号(屏蔽最后8位)+身份证号(屏蔽最后8位) 脱敏规则Rule5-c:手机号(仅保留前2位+最后1位)+身份证号(仅保留前1位+最后1位
今天我们要聊一聊数据脱敏。这个词听起来像特工电影里的高科技武器,其实它就是给敏感数据穿上“伪装衣”,防止“坏人”偷窥。无论是银行账号、身份证号码、邮箱地址,这些信息都需要时刻保持低调。如何低调?...没错——数据脱敏,Java 已准备好为你服务!1. 什么是数据脱敏?你是不是以为要给数据打马赛克?数据脱敏,简单来说就是“数据打码”,让重要数据在数据库、日志、前端展示时只露出“有限真容”。...所以无论是保护个人隐私还是遵守法律法规,数据脱敏都是必要的手段。3. Java 数据脱敏的常用方式Java 提供了多种数据脱敏方式,今天咱们来聊几种经典实用的“伪装术”。...例如,将某个身份证号替换为随机生成的虚拟号码:import java.util.Random;public class DataSubstitutionUtil { // 随机生成伪身份证号...总结Java 数据脱敏不仅仅是防止信息泄露的工具,它还是保护用户隐私的一道防线。在实际开发中,选择合适的脱敏方式(遮盖、替换、加密或哈希),能大大提升系统的安全性。
. */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar...; import java.util.Date; import java.util.Random; /** * 身份证验证的工具(支持15位或18位省份证) * 身份证号码结构: * ...* * 校验码(第18位数): * * 十七位数字本体码加权求和公式 s = sum(Ai*Wi), i = 0..16,先对前17位数字的权求和; * Ai:表示第i位置上的身份证号码数字值
不只是身份证号中间加星号,手机号中间4位加星同样也可以。...620101********1562 idMask("13000001234", 3, 4); 130****1234 完整Demo public class IdMask { /** * 用户身份证号码的打码隐藏加星号加...* 18位和非18位身份证处理均可成功处理 参数异常返回null * * @param idCardNum 身份证号码 * @param front 需要显示前几位 *...// 身份证不能为空 if (StringUtil.isEmpty(idCardNum)) { return null; } // 需要截取的长度不能大于身份证号长度
支持深度脱敏,支持复杂对象,嵌套对象,对象内多层级嵌套,自动寻找返回值中嵌套对象包含的需脱敏的属性; 最新版本 最新发布版已更新到mave中央仓库:[Maven Central][1.0.3-release...enable: true depth: false packages: com.mos.secure 说明: 属性 默认值 取值范围 说明 enable true true/false 是否启用脱敏...,全局生效,默认开启 depth false true/false 是否启用深度脱敏,为了性能考虑,默认关闭 packages 空 字符串 包路径,多个以英文逗号分隔 深度脱敏规则: depth为true...,且packages不为空,当方法返回值嵌套的属性包含在packages下,则自动进行脱敏。
数据脱敏指指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护,如我们日常可以看到的手机号“156**8888”等。...专注安全问题,解决脱敏需求,避免大家重复造轮子,secure-ext-spring-boot-starter控件已提供返回值脱敏的策略及使用方法。...---》jsonObject is jsonObject {} ",jsonObject); 4.2 基于简单对象的脱敏 无侵入,继续使用logback语法即可,已有代码无需改造。...(语法有调整) 由于脱敏是基于key-value模式,因此需要指定key,才可以解析出脱敏规则,因此语法需稍微调整为:空格+key^{}+空格 ; log.info("基于字符串的脱敏---》name...脱敏控件(含demo) 开发脚手架eboot
/** * * @ClassName TestId * @author 作者:XiaoMage * @version 0.1 * @Description : * 验证身份证号码是否正确
它把Java的instrument功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。java.lang.instrument是在JVM TI的基础上提供的Java版本的实现。...2.1.2 自定义 打算通过注解进行自定义脱敏,@DesFiled进行标记要脱敏的field,@Desenstized进行标记脱敏的类,通过继承一个basefilter进行脱敏的扩展。...) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Inherited...{ } 还有我们的脱敏的filter接口,以及他的实现类用于手机号field的脱敏,其实也就是转换: public interface BaseDesFilter { default T...第二张图是需要先获取到脱敏方法的引用然后传入this.name进行脱敏。 这下我们就知道自己需要做的了,这个时候其实完全不需要看接下来的细节了,可以自己去尝试一下,看看是如何去实现。
---- 许多系统为了安全需要对敏感信息(如手机号、邮箱、姓名、身份证号、密码、卡号、住址等)的日志打印要求脱敏后才能输出,本文将结合个人经历及总结分享一种log4j日志脱敏方式。...org.apache.logging.log4j.core.layout.PatternLayout; import org.apache.logging.log4j.core.pattern.RegexReplacement; import java.nio.charset.Charset... logger.infoMessage("password:{}", "123456"); logger.infoMessage("密码={}", "123456"); //身份证号码... logger.infoMessage("idCard:{},身份证号={}", "360123202111111122", "360123202111111122"); logger.infoMessage...log.test.LogTest : password:****** log.test.LogTest : 密码=****** log.test.LogTest : idCard:3****************2,身份证号
-- 身份证号码脱敏sql: SELECT idcard AS 未脱敏身份证, CONCAT(LEFT(idcard,3), '****' ,RIGHT(idcard,4)) AS 脱敏后身份证号...FROM t_s_user 2.JAVA数据脱敏实现 可参考:海强 / sensitive-plus https://gitee.com/strong_sea/sensitive-plus 数据脱敏插件...,目前支持地址脱敏、银行卡号脱敏、中文姓名脱敏、固话脱敏、身份证号脱敏、手机号脱敏、密码脱敏 一个是正则脱敏、另外一个根据显示长度脱敏,默认是正则脱敏,可以根据自己的需要配置自己的规则。...> mysql mysql-connector-java...; import java.util.List; import java.util.Map; @RestController public class UserController { @Autowired
.*; import java.lang.reflect.Field; import java.sql.Connection; import java.sql.Statement; import java.util.Collection...; import java.util.Objects; import java.util.Properties; /** * @author VampireAchao * @since 2022/
进行数字和 x 的识别 配合样式中的区域在后台裁剪相关区域图片 /idCardCv/src/main/resources/static/js/plugins/cropper/cropper.css 身份证号码识别...它是基于 java 开发。它的识别率较高。图片清晰情况下,号码检测与识别准确率在90%以上。
-- 身份证号码脱敏sql: SELECT idcard AS 未脱敏身份证, CONCAT(LEFT(idcard,3), '****' ,RIGHT(idcard,4)) AS 脱敏后身份证号... FROM t_s_user 2.JAVA数据脱敏实现 可参考:海强 / sensitive-plus https://gitee.com/strong_sea/sensitive-plus 数据脱敏插件...,目前支持地址脱敏、银行卡号脱敏、中文姓名脱敏、固话脱敏、身份证号脱敏、手机号脱敏、密码脱敏 一个是正则脱敏、另外一个根据显示长度脱敏,默认是正则脱敏,可以根据自己的需要配置自己的规则。...> mysql mysql-connector-java...; import java.util.List; import java.util.Map; @RestController public class UserController { @Autowired
数据脱敏通过对数据进行脱敏,在保证数据可用性的同时,也在一定范围内保证恶意攻击者无法将数据与具体用户关联到一起,从而保证用户数据的隐私性。...根据列的数据属性,数据列通常可以分为以下几种类型: 可确切定位某个人的列,称为可识别列,如身份证号,地址以及姓名等。...首先,实现基于大数据平台的脱敏算法库,可并行,高效的按照脱敏规则对隐私数据进行脱敏。...大数据脱敏平台的设计方向一般包括静态大数据脱敏平台和动态大数据脱敏平台,所谓静态和动态之分,主要在于脱敏的时机不同。...总结 针对于大数据平台对于数据脱敏的需求,本文分析了数据泄露可能带来的风险,介绍了数据脱敏技术的理论基础与实现方式,同时简单分析了大数据平台的隐私数据脱敏技术方向。
最近的项目中需要根据身份证号来计算年龄。废话少说,上代码。 private static final int invalidAge = -1;//非法的年龄,用于处理异常。.../** *根据身份证号码计算年龄 * @param idNumber 考虑到了15位身份证,但不一定存在 */ public static int getAgeByIDNumber...(idNumber.length() == 18) { dateStr = idNumber.substring(6, 14); } else {//默认是合法身份证号
领取专属 10元无门槛券
手把手带您无忧上云