引言 在日常工作中,日志处理是我们每一个程序员必备的素质,但是在有些场景下客户信息敏感,需要进行某些字段,或者某部分字段的脱敏处理。接到需求我们开始操刀!...,异常信息:[{}]", new Object[]{e}); } } /** * 脱敏处理方法 * * @param object...object); } catch (Exception e) { e.printStackTrace(); logger.error("日志脱敏处理失败...+ "*****" + value.substring(length -); } return value; } } 定义测试类 测试第一版实现的针对Map处理的脱敏操作...,异常信息:[{}]", new Object[]{e}); } } /** * 脱敏处理方法 * * @param object
一、背景 实际的业务开发过程中,我们经常需要对用户的隐私数据进行脱敏处理,所谓脱敏处理其实就是将数据进行混淆隐藏,例如下图,将用户的手机号、地址等数据信息,采用*进行隐藏,以免泄露个人隐私信息。...如果需要脱敏的数据范围很小很小,甚至就是指定的字段,一般的处理方式也很简单,就是写一个隐藏方法即可实现数据脱敏。 如果是需求很少的情况下,采用这种方式实现没太大问题,好维护!...但如果是类似上面那种很多位置的数据,需要分门别类的进行脱敏处理,通过这种简单粗暴的处理,代码似乎就显得不太优雅了。...那么问题来了,如何在序列化的时候,进行数据脱敏处理呢? 废话不多说,代码直接撸上!...四、参考 1、CSDN - 注解实现json序列化的时候自动进行数据脱敏 2、yanbin.blog - 自定义 Jackson 注解与禁用某一特定的注解 3、简书 - 数据脱敏处理
数据脱敏即将一些敏感信息通过加密、格式化等方式处理,展示给用户一个新的或是格式化后的信息,避免了敏感信息的暴露。一、接口脱敏注解针对接口数据实现脱敏加密,只加密,一般此方案用于数据加密展示。...1.1 注解介绍注解 作用域 描述@Sensitive实体脱敏加密注解,表示接口返回这个实体的值进行脱敏处理 1.2 示例只需要给实体加上注解,返回接口字段数据自动加密1.3 脱敏类型 数据处理规则支持...:加密处理、用户名称格式化、身份证号码格式化、邮件电话格式化等 语法:字段注解@Sensitive属性type,默认是encode(加密处理)敏感类型支持如下:public enum SensitiveEnum
数据脱敏(Data Desensitization),也称为数据匿名化(Data Anonymization)或数据保护,一种通过处理敏感信息以保护用户隐私的技术。...其核心目标是在保留数据结构的前提下,对关键信息进行处理,使之难以还原,从而降低数据泄露的风险。在数据脱敏的过程中,企业可以更好地平衡数据的可用性和隐私安全性。...在中国,例如,《个人信息保护法》正式实施,要求企业在处理个人信息时采取有效措施,其中包括数据脱敏等技术手段,以降低数据泄露的风险,保障个人隐私的安全。...个人信息保护法 《个人信息保护法》对个人信息的收集、处理、存储、传输等环节提出了明确的法律要求,强调企业在处理个人信息时必须采取合理的技术措施,其中包括数据脱敏。...通过数据脱敏,金融机构可以在合规的前提下,更好地处理客户数据,保护用户隐私。
生活中不乏数据脱敏的例子,比如我们最常见的火车票、电商收货人地址都会对敏感信息做处理,甚至女同志较熟悉的美颜、有些视频中的马赛克都属于脱敏。 ? 二、为什么要进行数据脱敏?...对于脱敏的程度,一般来说只要处理到无法推断原有的信息,不会造成信息泄露即可,如果修改过多,容易导致丢失数据原有特性。因此,在实际操作中,需要根据实际场景来选择适当的脱敏规则。...可恢复性脱敏就是数据经过脱敏规则的转化后,还再次可以经过某些处理还原出原来的数据,相反,数据经过不可恢复性脱敏之后,将无法还原到原来的样子,可以把二者分别看做可逆加密和不可逆加密。...我们目前遇到的场景是日志脱敏,即在把日志中的密码,甚至姓名、身份证号等信息都进行脱敏处理。 脱敏前: ? 脱敏后: ?...第一个方法就是在序列化实体之前先把需要脱敏的字段进行处理,之后正常序列化;第二个方法就是在实体序列化的时候,对要脱敏的字段进行处理。 后面来分享一下具体实现数据脱敏的方法。
如前文《静态脱敏典型应用场景分析——开发测试、数据共享、科学研究》所说,当前数据脱敏产品主要包括静态脱敏、动态脱敏产品两类。由于两者使用场景不同,关键技术有所差异。...动态脱敏常用在访问敏感数据即时进行脱敏,一般用来解决在生产环境需要根据不同情况对同一敏感数据读取时进行不同级别脱敏的场景,如业务脱敏、运维脱敏、数据交换脱敏等场景。...业务脱敏 场景特点 ❏ 业务用户访问应用系统时,需明确用户身份的真实性。 ❏ 不同权限业务用户访问敏感数据时需采取不同级别的脱敏规则。...❖ 支持基于敏感标签的脱敏访问策略,支持 B/S、 CS 等不同架构的业务系统、支持对字符串类型、数据类型、日期类型数据脱敏,通过随机、转换、遮盖方式实现对动态数据的脱敏效果,防止业务敏感数据信息和业务的个人隐私数据泄漏...美创数据脱敏系统内置敏感数据发现引擎,对源数据中的敏感数据按照脱敏规则,进行变形、漂泊、遮盖,保证脱敏后的数据保持数据的一致性和业务的关联性,应用于开发测试环境、数据交换、数据分析、数据共享等场景。
支持深度脱敏,支持复杂对象,嵌套对象,对象内多层级嵌套,自动寻找返回值中嵌套对象包含的需脱敏的属性; 最新版本 最新发布版已更新到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下,则自动进行脱敏。...public List listData() { System.out.println("执行业务处理..."); List<SensitiveEntity
数据脱敏指指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护,如我们日常可以看到的手机号“156**8888”等。...专注安全问题,解决脱敏需求,避免大家重复造轮子,secure-ext-spring-boot-starter控件已提供返回值脱敏的策略及使用方法。...---》jsonObject is jsonObject {} ",jsonObject); 4.2 基于简单对象的脱敏 无侵入,继续使用logback语法即可,已有代码无需改造。...(语法有调整) 由于脱敏是基于key-value模式,因此需要指定key,才可以解析出脱敏规则,因此语法需稍微调整为:空格+key^{}+空格 ; log.info("基于字符串的脱敏---》name...脱敏控件(含demo) 开发脚手架eboot
=\\d{4})") private String mobile; 还可以自定义处理器进行处理 @Desensitization(handler = MyDesensitizedHandler.class...InnerInterceptor, Interceptor { /** * {@link StatementHandler#prepare(Connection, Integer)} 操作前置处理
为了避免这种情况的发生,通常需要对半标识列进行脱敏处理,如数据泛化等。数据泛化是将半标识列的数据替换为语义一致但更通用的数据,已上述数据为例,对邮编和年龄泛化后的数据如表二所示。 ? ...常见数据脱敏算法 K-Anonymity, L-Diversity和T-Closeness均依赖对半标识列进行数据变形处理,使得攻击者无法直接进行属性泄露攻击,常见的数据变形处理方式如下: ? ...大数据脱敏平台的设计方向一般包括静态大数据脱敏平台和动态大数据脱敏平台,所谓静态和动态之分,主要在于脱敏的时机不同。...对于静态脱敏来说,数据管理员提前对数据进行不同级别的脱敏处理,生成不同安全级别的数据,然后授予不同用户访问不同安全级别数据的权限。...对于动态脱敏来说,管理员通过元数据管理不同用户访问具体数据的安全权限,在用户访问数据的时候,动态的从原始数据中按照用户权限动态的进行脱敏处理。
2)可以根据数据库账号信息进行单独鉴权配置和脱敏策略配置,降低数据泄漏的风险。 3)脱敏效率高,通过改写原SQL方式实现脱敏效果,将脱敏通过数据库函数处理。...2)无法处理select * 的语句,代理服务器在应用系统和应用数据库之间,获取不到应用数据库的表结构,对*无法翻译,无法根据字段进行脱敏。...5、混脱(数据库代理SQL改写+API结果集脱敏) 优点: 混脱方式可以解决数据库代理SQL改写不能翻译select *的问题,包含select * 由API对结果进行脱敏处理,不包含...select * 由数据库代理SQL改写处理 缺点: 1)稳定性风险:使用代理模式,代理服务器出现问题会导致产品不可用。...5)ranger sql改写基于子查询改写原理,对多表JOIN,where条件中带脱敏字段查询操作处理不好,无法拿到预期结果。
背景上一篇文章讲到了《一个注解,实现数据脱敏》,其实用起来还是相当的方便。那shigen是一个喜欢倒腾的人,对于python的接口,如何实现数据的脱敏呢?...我找了很久的教程,发现关于这部分的资料并不多,而且大部分的都是手写脱敏算法的。最终我也妥协了,我使用的是正则表达式实现数据的脱敏。...本文中,将使用flask+faker实现一个接口,再用正则表达式加工一下,它返回脱敏后的随机数据。...faker模拟生成数据图片这里就是用faker生成模拟的数据,然后传入对应的方法中进行进一步的匹配处理,最后包装成一个json的数据返回给前端尝试调用一下,每次返回的数据是不一样的,数据的脱敏需求也是如期的实现的...:图片图片总结以上就是《python实现数据脱敏》的全部内容了,觉得不错的伙伴记得点赞 在看 关注 分享哈,你的鼓励是shigen不断更新的动力。
产品简介 中安威士数据库动态脱敏系统(简称VS-DM),通过截获并修改数据库通讯内容,对数据库中的敏感数据进行在线的屏蔽、变形、字符替换、随机替换等处理,达到对用户访问敏感数据真实内容的权限控制。...产品功能 · 实时动态脱敏 对需要共享的生产数据或时效性要求很高的数据测试和培训场景,提供基于网关代理模式的动态脱敏技术,达到实时模糊敏感数据的效果。...动态脱敏可对业务系统数据库中敏感数据进行透明、实时脱敏。 ² 动态脱敏可以依据数据库用户名、IP、客户端工具类型、访问时间等多重身份特征进行访问控制。...² 动态脱敏对生产数据库中返回的数据可以进行放行、屏蔽、隐藏、返回行控制等多种脱敏策略。...1.jpg · 脱敏日志审计 系统将产生的日志转存至脱敏系统中,用户可以对运维人员操作数据库的日志进行查询和统计,实现对数据库进行审计的功能。
产品功能 1.jpg 数据抽取 本系统采用了灵活的数据抽取方式,既为所有数据库应用环境提供了通用模式的数据处理接口,又为部分数据库应用环境提供了基于极速模式的数据处理接口。...数据脱敏 l 数据不落地:在执行数据抽取、脱敏计算、数据装载等任务时,不会在本地磁盘上记录任何数据,所有数据均只在内存中进行处理。...l 脱敏规则灵活丰富:可根据实际需要提供数据遮蔽、数据仿真、关键部分替换、随机字符串、重置固定值等多种多样的敏感数据处理方式,以达到隐藏或模糊处理真实敏感信息的目的,提高生产数据在应用开发、测试、以及第三方工具做数据分析等使用场景中的安全性...l 数据的有效性和一致性:保证生产环境中的真实数据经过脱敏系统处理后,仍然保持原有的语义、长度和关联关系。脱敏后的数据在测试、分析场景中仍能具有可用性、规范性和“真实性”。...而且所有的仿真脱敏规则还支持可逆脱敏:使用数据仿真规则脱敏后的数据,再次经过脱敏设备处理后,可以将指定范围的数据还原为真实的原始数据。
https://blog.csdn.net/huyuyang6688/article/details/77759844 上文说了数据过敏主要有两个思路:第一个就是在序列化实体之前先把需要脱敏的字段进行处理...,之后正常序列化;第二个就是在实体序列化的时候,对要脱敏的字段进行处理。...要对数据进行脱敏,基本上都是对一些关键的、少数字段进行脱敏,比如某个实体中可能只对password这一个字段进行脱敏处理,所以可以用自定义注解的方式,只需在需要脱敏的字段上添加一个注解,比较方便。 ...写日志时,序列化之前先把要打印的对象clone一份,然后找出添加脱敏自定义注解的字段进行相应规则的处理转化(比如把“刘德华”改为“刘*华),然后再对对象进行序列化操作。...ADDRESS, /** 电子邮件 */ EMAIL, /** 银行卡 */ BANK_CARD, /** 密码 */ PASSWORD; } 实现脱敏处理类
问题 在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。...上层业务调用不再需要考虑数据的加敏同时也保证了数据的加解密 Mybatis 插件原理 Mybatis 的是通过拦截器实现的,Mabatis 支持对当事人进行拦截 实现 设置对参数中带有敏感参数字段的数据时进行加密 对返回的结果进行解密处理...private void processParam(Object parameterObject, List params) throws Exception { // 处理参数对象
jQuery.unsubscribe('success',f2) 优缺点:优缺点和事件监听差不吧 Promise Promise是CommonJS工作组提出的一种规范,可以获取异步操作的消息,也是异步处理中常用的一种解决方案...等待状态可以变为fulfied状态并传递一个值给相应的状态处理方法,也可能变为失败状态rejected并传递失败信息。...jQuery.unsubscribe('success',f2) 优缺点:优缺点和事件监听差不吧 Promise Promise是CommonJS工作组提出的一种规范,可以获取异步操作的消息,也是异步处理中常用的一种解决方案...等待状态可以变为fulfied状态并传递一个值给相应的状态处理方法,也可能变为失败状态rejected并传递失败信息。
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。...关于数据脱敏陈某前面也发表过两篇文章,如下: 大厂也在用的 6种 数据脱敏方案,别做泄密内鬼!:介绍了常用的脱敏方案 Springboot 日志、配置文件、接口数据如何脱敏?...:介绍了SpringBoot中的日志、配置文件、接口数据的脱敏 今天来深入聊一下 Sharding-JDBC 如何对敏感数据脱敏,仅在持久层脱敏。...数据脱敏实战 基本概念介绍完了,下面就使用Sharding-JDBC进行数据脱敏。 这里就不再演示分库分表了,直接用单库进行脱敏演示。...脱敏字段无法支持计算操作,如:AVG、SUM以及计算表达式 。 原理 其实Sharding-JDBC数据脱敏原理很简单,看一下官方给的一张图: 1.
应用层脱敏:将查询到数据根据一定的策略进行脱敏后再返回或打印日志,对应用代码有入侵,性能可控。 基于日志框架进行脱敏:使用正则表达式进行处理,对日志格式有要求,否则无法识别需要脱敏的信息。...基于SQL语句脱敏 基于SQL语句的数据脱敏,需要依赖相应的数据库函数。 如下,以MySQL数据库为例,在查询数据的时候通过函数concat(),left()和right()实现脱敏处理。...应用层脱敏 数据脱敏的处理完全在应用层处理,也就说:什么数据该脱敏,如何脱敏,脱敏后如何使用完全在应用层控制。 在应用层进行数据脱敏可以应对日志打印,API接口数据返回等场景需求。...在Logback框架中,可以通过自定义MessageConverter的方式实现对日志消息脱敏处理。...写在最后 综上,不论是日志打印还是接口返回数据场景的脱敏需求,出于灵活性和性能考虑,都应该优先考虑在应用层处理。 至于在应用层处理的侵入性,可以通过项目约定进行统一即可。
jsonimport subprocessimport timeimport mysql.connectorimport pymssqldef get_black_fields(): # 需要脱敏的列清单...mysql_cursor.fetchall() black_fields = [] for ii in result: black_fields.append(ii[0]) print(f"当前的需要脱敏的列清单...) result = fetch_all_as_dict(cursor) finally: connection.close() return result# 脱敏函数...if "as".lower() in query.lower(): # 这里还可以考虑发个钉钉告警 # print(f"发现sql中有用到alias别名写法,请注意是否造成脱敏失败
领取专属 10元无门槛券
手把手带您无忧上云