背景上一篇文章讲到了《一个注解,实现数据脱敏》,其实用起来还是相当的方便。那shigen是一个喜欢倒腾的人,对于python的接口,如何实现数据的脱敏呢?...我找了很久的教程,发现关于这部分的资料并不多,而且大部分的都是手写脱敏算法的。最终我也妥协了,我使用的是正则表达式实现数据的脱敏。...本文中,将使用flask+faker实现一个接口,再用正则表达式加工一下,它返回脱敏后的随机数据。...代码实现定义一个通用的正则表达式匹配工具实现的是将符合规则的数据变成脱敏之后的数据图片不得不说,还是很考验正则表达式的功底的,但是shigen的这个还是可以做到通用的,建议拿来就用。...faker模拟生成数据图片这里就是用faker生成模拟的数据,然后传入对应的方法中进行进一步的匹配处理,最后包装成一个json的数据返回给前端尝试调用一下,每次返回的数据是不一样的,数据的脱敏需求也是如期的实现的
介绍这两个加密方法,主要还是在对一些业务数据做脱敏有这样的要求: 1、脱敏字段全部内容加密模糊化,部分加密模糊不行, 2、保持字段各条记录的原来数据关系, 3、加密后的数据长度与原来保持一样。...没有这些条件,加密脱敏方法还是比较多的,同时满足以上的要求,就不容易满足了。 比如以下的利用 MD5 创建自定义函数,满足了 1 和 2 的要求,却满足不了 3 的要求。...,复杂度也相当高,原来相同的记录加密后的字符串也是一样的,只是加密后的字符串跟原来的长度不一致,不过也容易被解密。...插入测试数据并查看: ? 被取代的数据以数字型被取代: ? 0 没有被替换成 ’a’,也没有被替代成任何字符。 被取代的数据以字符型被取代: ? ‘0’被替换成’a’。...在各种加密脱敏方法中,不管使用哪一种方法,容易还是简单,只要适合脱敏的需求。上面两个只是简单的举例。 作者:苏星开 投稿:有投稿意向技术人请在公众号对话框留言。 转载:意向文章下方留言。
前言 一 什么是数据脱敏? 二 姓名脱敏小案例 2.1 定长脱敏 2.2 非定长脱敏 三 函数释义 前言 大家好,我是麦洛,前几天项目中用到了姓名脱敏,要保留头和尾,中间填充不定数量的'*'。...因为不熟悉相关函数,破费周折,今天总结一下,感觉有用的可以收藏一下就好 一 什么是数据脱敏?...数据脱敏(Data Masking),顾名思义,是屏蔽敏感数据,对某些敏感信息(比如,身份证号、手机号、卡号、客户姓名、客户地址、邮箱地址、薪资等等 )通过脱敏规则进行数据的变形,实现隐私数据的可靠保护...业界常见的脱敏规则有,替换、重排、加密、截断、掩码,用户也可以根据期望的脱敏算法自定义脱敏规则。...img 二 姓名脱敏小案例 2.1 定长脱敏 所谓定长脱敏,就是替换的'*'的长度固定,效果如下图所示 SELECT CONCAT( LEFT ( real_name, 1 ), '*', RIGHT
问题 在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。...解决思路 就是:一种最简单直接的方式,在所有涉及数据敏感的查询到对插入时进行密码加解密 方法二:有方法一到出现对所有重大问题的影响,需要考虑到问题的出现,并且需要考虑可能出现的组员时添加数据的方法。...上层业务调用不再需要考虑数据的加敏同时也保证了数据的加解密 Mybatis 插件原理 Mybatis 的是通过拦截器实现的,Mabatis 支持对当事人进行拦截 实现 设置对参数中带有敏感参数字段的数据时进行加密...; } } } } return result; } } 加密实现类...切入mybatis设置参数时对敏感数据进行加密 Mybatis插件的使用就是通过实现Mybatis中的Interceptor接口 再@Intercepts注解 // 使用mybatis插件时需要定义签名
问题 在项目中需要对用户敏感数据进行脱敏处理,例如身份证号、手机号等信息进行加密再入库。...解决思路 方法一:最简单直接的方式就是对代码中所有涉及到敏感数据的接口在查询和插入时进行加解密 方法二:方法一会对代码入侵很大,需要考虑到所有涉及到的接口,工作量极大,并且可能出现组员协作时没有考虑到对数据加解密的问题...上层业务调用不再需要考虑数据的加解密问题同时也保证了数据的脱敏 Mybatis插件原理 Mybatis的插件是通过拦截器实现的,Mabatis支持对四种对象进行拦截 实现 1、 设置参数时对参数中含有敏感字段的数据进行加密...} } } } return result; } } 加密实现类...参数插件ParameterInterceptor 切入mybatis设置参数时对敏感数据进行加密 Mybatis插件的使用就是通过实现Mybatis中的Interceptor接口 再配合@Intercepts
要是遇上稍微不规范的团队,直接如同迷雾中穿梭,在不懂逻辑的情况下被迫写代码,shi上堆shi。好了,夜深了,我也不去哔哔,传输一点无用的emo了。---今天的话题是:一个注解实现业务数据脱敏。...背景我们在开发的过程中,或者说再用一些类似某宝、某东的时候,发现个人信息的电话是这样的:123****7890,其实主要的目的还是为了实现数据的安全。那作为开发,我们自己怎样实现呢?...OK,那能不能继续往下思考一下,实现一个通用的工具类,包括各种类型的数据脱敏呢?安排上!...那使用上就更简单了,shigen直接上代码了。图片图片请求接口,看到的数据就是这样的:图片这就巧妙的实现了数据的脱敏,也感谢hutool工具类的支持和大神蜗牛提供的解决方案。...代码也在shigen的gitee上:数据脱敏,需要源代码的伙伴可以去看看。---以上就是《一个注解,实现数据脱敏》的全部内容了。与**shigen**一起,每天不一样!
Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 本文主要描述如何使用Sentry实现数据的脱敏...数据脱敏主要是指将原始数据的全部或者部分敏感值进行替换。这样避免了用户未经授权而直接访问原始的值,并保留了底层数据的schema。...灵活的数据脱敏方案应该是底层数据真实的值没有被脱敏,当有用户查询数据时则判断是否屏蔽,取决于用户的具体权限。我们可以使用Sentry控制视图的权限来实现数据脱敏。...本文Fayson会以一个简单的实操例子来介绍如何使用Sentry实现Hive/Impala的数据脱敏。...regexp_replace()函数通过正则表达式的方式敏感数据屏蔽,也可以通过自定义的UDF函数来等方式来实现敏感数据脱敏。
Data Encryption,透明数据加密) 指的是无需修改应用就可以实现数据的加解密,在数据写磁盘的时候加密,读的时候自动解密。...各种插件和组件的安装和使用方法见:https://dev.mysql.com/doc/refman/8.0/en/keyring.html 2 数据脱敏 数据脱敏,就是将敏感的信息,例如身份证信息...从8.0.13开始,MySQL企业版提供了数据脱敏的功能,主要包括: 1.转换现有数据,例如将信用卡号只保留最后四个字符,其余数据均更改为“X”字符; 2.随机数据的生成,例如电子邮件地址和信用卡号。...这些功能都是通过安装插件实现的,日常需要数据脱敏的时候,例如测试环境的部署等, 通过使用这些函数可大大方便我们的工作。...,可参见 https://dev.mysql.com/doc/refman/8.0/en/data-masking-function-reference.html 关于TDE和数据脱敏,就介绍到这里了,
https://blog.csdn.net/huyuyang6688/article/details/77759844 上文说了数据过敏主要有两个思路:第一个就是在序列化实体之前先把需要脱敏的字段进行处理...脱敏实现思路 ---- 这里探讨第一种方法,用基于自定义注解的方式实现日志脱敏。 ...要对数据进行脱敏,基本上都是对一些关键的、少数字段进行脱敏,比如某个实体中可能只对password这一个字段进行脱敏处理,所以可以用自定义注解的方式,只需在需要脱敏的字段上添加一个注解,比较方便。 ...针对整个实现的思路、实现方法,如果您有任何疑问和建议,欢迎交流讨论。...《数据脱敏——基于Java自定义注解实现日志字段脱敏》】
用MySQL自身函数实现 - 随机盐加密,解密,脱敏。...用于生成加密密钥', PRIMARY KEY (`id`) ) ENGINE=InnoDB COMMENT='用户信息表'; -- 加密插入数据 -- 使用UUID()生成随机盐值,并将其与固定密钥串联生成最终的加密密钥...MyKey1234567890'); INSERT INTO user(mobile,salt) VALUES (AES_ENCRYPT('13599911111', @key), @salt); -- 解密数据...) AS mobile FROM user; -- 脱敏数据展示 -- 安装脱敏插件 mysql> INSTALL PLUGIN data_masking SONAME 'data_masking.so...'; mysql> SELECT * FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'data%'; -- 保留手机号的前3位和后2位,
根据数据保护规范和脱敏策略.对业务数据中的敏感信息实施自动变形.实现对敏感信息的隐藏。...3代码实现 我们先列出数据脱敏的类型 上面为我们需要脱敏的数据枚举。...(s, jsonGenerator)数据脱敏的方法,这个方法根据不同的枚举类型实现对应的数据脱敏。...然后我们还要重写createContextual()方法,这里面实现的功能就是扫描脱敏注解然后实现各自的数据脱敏。 接下来我们定义脱敏注解。 这个value()是我们传入的类型枚举。...,maskingData(String str)是实现数据脱敏的方法。
利用企业级特性给敏感数据打码。 ---- 1. 插件安装2. 数据打码插件应用2.1 隐藏重要数据2.2 生成随机数据并打码2.3 基于字典生成随机值2.4 其他要注意的地方3. 总结4....延伸阅读 MySQL企业版从8.0.13开始,新增一个插件叫做Data Masking and De-Identification,我将其简称为数据打码插件,其主要功能有: 将部分敏感数据转换成无害数据...这就可以在查询数据库中的敏感数据时以"***"或"XXX"等方式打码显示,避免泄漏。 生成随机数据,例如邮箱或银行卡号。例如在做功能测试时,我们可能需要生成一些随机数据,就用得上了。 1....总结 数据打码插件是个非常不错的功能,除了上面描述的几个场景,还可以在用在 SELECT ... INTO OUTFILE 导出线上生产数据,然后再导入本地测试环境。...或者直接在线上环境中,利用这些函数将数据脱敏处理后,写入专门的测试库,让测试程序直接读取,或者再利用主从复制同步到本地测试环境,可以玩出各种花样。 更多详情请参考手册内容。
通常接口返回值中的一些敏感数据也是要脱敏的,比如身份证号、手机号码、地址.....通常的手段就是用*隐藏一部分数据,当然也可以根据自己需求定制。 言归正传,如何优雅的实现呢?...有两种实现方案,如下: 整合Mybatis插件,在查询的时候针对特定的字段进行脱敏 整合Jackson,在序列化阶段对特定字段进行脱敏 基于Sharding Sphere实现数据脱敏,查看之前的文章:基于...Sharding Sphere实现数据“一键脱敏” 第一种方案网上很多实现方式,下面演示第二种,整合Jackson。...定制脱敏策略 针对项目需求,定制不同字段的脱敏规则,比如手机号中间几位用*替代,如下: /** * 脱敏策略,枚举类,针对不同的数据定制特定的策略 */ public enum SensitiveStrategy...总结 数据脱敏有很多种实现方式,关键是哪种更加适合,哪种更加优雅.....
数据加密和脱敏的需求 3. Spring Boot项目初始化 4. 敏感数据加密注解设计 5. 实现加密和脱敏的工具类 6. 实体类和加密脱敏注解的使用 7. 利用AOP实现加密和脱敏 8....本文将介绍如何在Spring Boot项目中利用注解、反射和AOP的组合,实现对敏感数据的加密和脱敏,提高数据安全性。 2....实现加密和脱敏的工具类 创建一个工具类 SensitiveDataUtils,用于实现对敏感数据的加密和脱敏操作。...这样,在调用标记了 @SensitiveData 注解的方法前,会先对敏感数据进行加密。 9. 测试 创建一个简单的Controller进行测试。...希望本文对你在Spring Boot项目中实现数据加密和脱敏提供了一些有用的思路。 结尾 ❤️ 感谢您的支持和鼓励!
几天前使用了Jackson对数据的自定义序列化。突发灵感,利用此方法来简单实现接口返回数据脱敏,故写此文记录。...核心思想是利用Jackson的StdSerializer,@JsonSerialize,以及自己实现的数据脱敏过程。...使用效果如下: 首先在需要进行脱敏的VO字段上面标注相关脱敏注解 调用接口即可看到脱敏效果 实现过程如下: 1....定义脱敏的过程实现 /** * Created by EalenXie on 2021/9/24 15:52 * 顶级的脱敏器 */ public interface Desensitization...完整代码可见 : https://github.com/EalenXie/jackson-desensitize 另附 基于Logback的日志脱敏方案(笔者认为这可能是全网最简单快捷的) 原理是利用
0x0 背景 由于MySQL社区版没有自带的审计功能或插件,对于等级保护当中对数据库管理的要求的就存在一定的不满足情况的,抛开条条框框不说数据库的日志是值得研究的,通过收集数据库的日志到企业SOC平台便于安全事件的溯源与故障分析...根据等级保护内容第四章“数据库管理系统安全技术要求”中 第四节“数据库安全审计”中明确提出数据库管理系统的安全审计应: 1. 建立独立的安全审计系统; 2. 定义与数据库安全相关的审计事件; 3....设置专门的安全审计员; 4. 设置专门用于存储数据库系统审计数据的安全审计库; 5. 提供适用于数据库系统的安全审计设置、分析和查阅的工具。...0x1 部署插件 为了节省购买一些安全设备的费用,可以尝试使用一些开源的日志审计插件。Mysql-audit是macfee公司基于percona开发的MySQL的SQL审计插件。...通过插件的方式可以实现mysql日志的审计通过ELK的框架实现日志的保存与分析,再通过后期写一些脚本分析可以实现安全检测与业务分析等多个功能,关键是零成本特别适合那些”一个人的安全部”有此需求的同行们.
来源:sourl.cn/uLCCPw 在真实业务场景中,数据库中经常需要存储某些客户的关键性敏感信息如:身份证号、银行卡号、姓名、手机号码等,此类信息按照合规要求,通常需要实现加密存储以满足合规要求。...痛点二 对于一些为了快速上线而一开始没有实现合规脱敏的系统,如何比较快速的使得已有业务满足合规要求的同时,尽量减少对原系统的改造。...通常的这个过程至少包括: 新增脱敏列的存储 同时做数据迁移 业务的代码做兼容逻辑等 Apache ShardingSphere下面存在一个数据脱敏模块,此模块集成的常用的数据脱敏的功能。...其基本原理是对用户输入的SQL进行解析拦截,并依靠用户的脱敏配置进行SQL的改写,从而实现对原文字段的加密及加密字段的解密。最终实现对用户无感的加解密存储、查询。...创建脱敏配置规则对象 在创建数据源之前,需要准备一个EncryptRuleConfiguration进行脱敏的配置,以下是一个例子,对于同一个数据源里两张表card_info,pay_order的不同字段进行
数据库管理员会负责维护数据的隐私和完整性。针对数据的脱敏,通常的方案是:应用端实现或者引入加密机等。...不过现在MySQL8.0实现了数据脱敏这个功能,可以减少应用的复杂性、减少开发的工作量,也能友好的保护了数据的隐私和完整性。...在8.0.13企业版中推出插件“data_masking.so”,可以实现数据的脱敏操作。 可以实现例如:银行卡号中的后四位为X字符、生产随机数据、例如电子邮件地址和支付卡号等......Percona MySQL Server实现了类似的功能。...简单举例 1.1创建表 ? 1.2 创建视图做比对 ? 1.3 结果对比 ? 目前Percona MySQL Server 对此功能没有GA,现在不能在生产环境使用。
当看到这个文章名的时候,是不是很熟悉,是的shigen之前发表了一个这个题目一样的文章,今天的是plus加强版。...背景 在shigen之前的文章一个注解,实现数据脱敏中,有一位读者提到了一个优化项目,优化代码参考: 正巧这是个周末,我再次对我的代码根据这个优化项目优化了一下,代码地址在这里,感兴趣的伙伴可以去看看。...区别于代码案例的作者,这里定义了Customer类型的脱敏,实现用户自定义隐藏字符。...SensitiveJsonSerializer 这里定义的方法和上一版本的基本一致,从注解中获得参数的值,然后调用在枚举中的方法,实现数据的脱敏。 使用 在使用上和之前的也没什么区别。...我们新建一个接口测试一下: 输出的结果也是符合预期的。 以上就是今天分享的全部内容了,觉得不错的话,记得点赞 在看 关注支持一下哈,您的鼓励和支持将是shigen坚持日更的动力。
起因最近在写一个功能,对用户敏感的数据进行脱敏,在网上看一圈基本上都是全局范围的,我觉得应该更加灵活,在不同场景,不同业务下进行脱敏更加合适。...return tmpKey.toString(); } else { return tmpKey.toString(); } } }复制代码注解使用 效果的确实现了数据脱敏...,但是有个问题现在的脱敏针对的是 只要对该实体类进行了使用返回的接口,中的数据都会进行脱敏,在有些场景下是不需要的,所以说要进行改进。...第二版改进我的思路是在该实体类中在继承一个 父类其中定义一个字段,使其作为是否进行脱敏的开关,并且该实体类字段不参与序列化 脱敏控制类public class DataMaskKey implements...,在进行手动set即可最终方案在上述情况下可以实现 手动控制是否在某些场景下的脱敏,但是需要对原来的代码进行修改,我觉得不友好,所以采用aop的形式进行控制 项目的返回类型基本上为两种实体类作为返回分页返回
领取专属 10元无门槛券
手把手带您无忧上云