引言 在日常工作中,日志处理是我们每一个程序员必备的素质,但是在有些场景下客户信息敏感,需要进行某些字段,或者某部分字段的脱敏处理。接到需求我们开始操刀!...实现第一版 由于在RPC调用过程当中,大部分接口的参数封装数据类型都是Map,所以在此先针对Map形式实现日志脱敏功能 实现思路: 有两种实现方法: 第一种:写死配置 第二种:使用注解驱动 由于写死配置的扩展性实在是差...实现第二版 由于在RPC调用过程当中,大部分接口的参数封装数据类型都是Map,但是部分接口还是使用Java Bean所以在此针对Java Bean形式实现日志脱敏功能 实现思路: 根据不同的数据类型进行不同判断...,屏蔽上层调用者的可见度,在底层动态实现分情况处理 在结果处理完之后,统一返回调用者序列化完成的数据信息 在第一版实现的基础之上,我们开始第二版的实现 添加实体类 主要是为了封装模拟RPC调用过程中参数实体的属性...(person); System.out.println("脱敏后:" + converent2); } 第二版实现测试结果 针对Map实现的脱敏结果 脱敏前:{certNo=
脱敏实现思路 ---- 这里探讨第一种方法,用基于自定义注解的方式实现日志脱敏。 ...(); /*判断注解是否生效的方法*/ String isEffictiveMethod() default ""; } 脱敏类型 SensitiveTypeEnum.java public...DesensitizedUtils.java public class DesensitizedUtils { /** * 获取脱敏json串 * * @param...针对整个实现的思路、实现方法,如果您有任何疑问和建议,欢迎交流讨论。...——基于Java自定义注解实现日志字段脱敏》】
什么是信息脱敏 就是隐藏掉信息中的一部分关键信息,用 * 代替 比如手机号 13012345678 ===》 130****5678 Java 如何实现?...点我查看 我们以身份证号码为例: // 5***************1X DesensitizedUtil.idCardNum("51343620000320711X", 1, 2); 对于约定俗成的脱敏...,我们可以不用指定隐藏位数,比如手机号: // 180****1999 DesensitizedUtil.mobilePhone("18049531999"); 当然还有一些简单粗暴的脱敏,比如密码,只保留了位数信息
业务需求 将用户敏感信息脱敏展示到前端是出于保护用户隐私和信息安全的考虑。 敏感信息包括但不限于手机号码、身份证号、银行卡号等,这些信息泄露可能导致用户个人信息的滥用、身份盗用等严重问题。...脱敏是一种常用的保护用户隐私的方式,它的目的是减少潜在的风险,同时保持一定的用户信息可读性。 比如咱们在选择用户信息以及展示选座信息时,用户证件号码的脱敏展示。...为此,我想是否存在一种更为轻量级的脱敏技术实现?在网上搜索后,找到了一种比较符合我预期的实现方案:Jackson序列化方案。...代码实现 定义手机号和证件号的 Jackson 自定义序列化器,并在对应需要脱敏的敏感字段上指定自定义序列化器。 1、身份证号序列化器。...扩展思考 对接前端的敏感数据脱敏展示功能做到上面这些就已经实现了。但是总感觉哪里不对 举个例子 :在购票服务中,下单接口会调用乘车人详细信息接口获取到手机号、证件号等信息保存入库。
最近在使用@DateFormate , 进行信息日期格式化的时候,在思考他是怎么实现的呢。
背景上一篇文章讲到了《一个注解,实现数据脱敏》,其实用起来还是相当的方便。那shigen是一个喜欢倒腾的人,对于python的接口,如何实现数据的脱敏呢?...我找了很久的教程,发现关于这部分的资料并不多,而且大部分的都是手写脱敏算法的。最终我也妥协了,我使用的是正则表达式实现数据的脱敏。...本文中,将使用flask+faker实现一个接口,再用正则表达式加工一下,它返回脱敏后的随机数据。...代码实现定义一个通用的正则表达式匹配工具实现的是将符合规则的数据变成脱敏之后的数据图片不得不说,还是很考验正则表达式的功底的,但是shigen的这个还是可以做到通用的,建议拿来就用。...:图片图片总结以上就是《python实现数据脱敏》的全部内容了,觉得不错的伙伴记得点赞 在看 关注 分享哈,你的鼓励是shigen不断更新的动力。
数据脱敏即将一些敏感信息通过加密、格式化等方式处理,展示给用户一个新的或是格式化后的信息,避免了敏感信息的暴露。一、接口脱敏注解针对接口数据实现脱敏加密,只加密,一般此方案用于数据加密展示。...1.1 注解介绍注解 作用域 描述@Sensitive实体脱敏加密注解,表示接口返回这个实体的值进行脱敏处理 1.2 示例只需要给实体加上注解,返回接口字段数据自动加密1.3 脱敏类型 数据处理规则支持
问题 在项目中需要对用户敏感数据进行脱敏处理,例如身份证号、手机号等信息进行加密再入库。...上层业务调用不再需要考虑数据的加解密问题同时也保证了数据的脱敏 Mybatis插件原理 Mybatis的插件是通过拦截器实现的,Mabatis支持对四种对象进行拦截 实现 1、 设置参数时对参数中含有敏感字段的数据进行加密...; import java.lang.reflect.Field; import java.util.Arrays; import java.util.Objects; import java.util.Random...; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Parameter...; import java.util.ArrayList; import java.util.Objects; import java.util.Properties; /** * @author
问题 在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。...上层业务调用不再需要考虑数据的加敏同时也保证了数据的加解密 Mybatis 插件原理 Mybatis 的是通过拦截器实现的,Mabatis 支持对当事人进行拦截 实现 设置对参数中带有敏感参数字段的数据时进行加密...另外,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,涵盖 2000+ 道 Java 面试题,几乎覆盖了所有主流技术面试题。...; import java.lang.reflect.Field; import java.util.Arrays; import java.util.Objects; import java.util.Random...; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Parameter
Java连接MQ实现信息查询在分布式系统中,消息队列(MQ)是一种常见的用于实现系统之间解耦、消息传递和异步通信的技术。本文将介绍如何使用Java连接MQ并实现信息查询的过程。1....编写Java代码实现信息查询javaCopy codeimport org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;import org.apache.rocketmq.client.consumer.listener...通过这种方式,你可以实现基于MQ的信息查询功能。在线商城的订单处理系统来演示如何使用Java连接MQ实现信息查询的功能。假设我们有一个订单系统,订单创建后需要异步通知库存系统进行库存扣减。...MQ,库存系统监听MQ并处理订单信息,实现了订单与库存系统的解耦。...结论通过上述步骤,我们成功地使用Java连接MQ并实现信息查询功能。消息队列技术可以很好地实现系统之间的解耦和异步通信,为构建高效的分布式系统提供了重要的支持。
数据加密和脱敏的需求 3. Spring Boot项目初始化 4. 敏感数据加密注解设计 5. 实现加密和脱敏的工具类 6. 实体类和加密脱敏注解的使用 7. 利用AOP实现加密和脱敏 8....总结 Spring Boot实现数据加密脱敏:注解 + 反射 + AOP ---- 1. 引言 随着信息安全的日益重要,对敏感数据进行加密和脱敏已成为业务开发中不可忽视的一环。...数据加密和脱敏的需求 在实际应用中,我们常常需要对一些敏感数据进行保护,以防止敏感信息泄露。...数据加密用于将原始数据进行加密,使得即便数据被非法获取,也难以解密;而数据脱敏则是在数据显示时对敏感信息进行掩盖,确保展示给用户的数据不包含真实的敏感信息。 3....实现加密和脱敏的工具类 创建一个工具类 SensitiveDataUtils,用于实现对敏感数据的加密和脱敏操作。
---今天的话题是:一个注解实现业务数据脱敏。背景我们在开发的过程中,或者说再用一些类似某宝、某东的时候,发现个人信息的电话是这样的:123****7890,其实主要的目的还是为了实现数据的安全。...图片其实就是结合hutool的工具类实现在json序列化的时候,改变一下string的格式。这样就一个注解实现了格式化的通用。...OK,那能不能继续往下思考一下,实现一个通用的工具类,包括各种类型的数据脱敏呢?安排上!...图片图片请求接口,看到的数据就是这样的:图片这就巧妙的实现了数据的脱敏,也感谢hutool工具类的支持和大神蜗牛提供的解决方案。...代码也在shigen的gitee上:数据脱敏,需要源代码的伙伴可以去看看。---以上就是《一个注解,实现数据脱敏》的全部内容了。与**shigen**一起,每天不一样!
突发灵感,利用此方法来简单实现接口返回数据脱敏,故写此文记录。 核心思想是利用Jackson的StdSerializer,@JsonSerialize,以及自己实现的数据脱敏过程。...使用效果如下: 首先在需要进行脱敏的VO字段上面标注相关脱敏注解 调用接口即可看到脱敏效果 实现过程如下: 1....定义脱敏的过程实现 /** * Created by EalenXie on 2021/9/24 15:52 * 顶级的脱敏器 */ public interface Desensitization... { /** * 脱敏实现 * * @param target 脱敏对象 * @return 脱敏返回结果 */ T desensitize...(T target); } 比如具体的手机号脱敏器实现 import com.github.Symbol; import java.util.regex.Matcher; import java.util.regex.Pattern
Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 本文主要描述如何使用Sentry实现数据的脱敏...灵活的数据脱敏方案应该是底层数据真实的值没有被脱敏,当有用户查询数据时则判断是否屏蔽,取决于用户的具体权限。我们可以使用Sentry控制视图的权限来实现数据脱敏。...本文Fayson会以一个简单的实操例子来介绍如何使用Sentry实现Hive/Impala的数据脱敏。...regexp_replace()函数通过正则表达式的方式敏感数据屏蔽,也可以通过自定义的UDF函数来等方式来实现敏感数据脱敏。...通过脱敏SQL创建视图,使用Sentry权限控制将脱敏数据的视图提供给不同的用户访问 授权访问视图(即使授权ALL)的用户也无权限访问相应表的底层数据文件。
来源:sourl.cn/uLCCPw 在真实业务场景中,数据库中经常需要存储某些客户的关键性敏感信息如:身份证号、银行卡号、姓名、手机号码等,此类信息按照合规要求,通常需要实现加密存储以满足合规要求。...痛点二 对于一些为了快速上线而一开始没有实现合规脱敏的系统,如何比较快速的使得已有业务满足合规要求的同时,尽量减少对原系统的改造。...通常的这个过程至少包括: 新增脱敏列的存储 同时做数据迁移 业务的代码做兼容逻辑等 Apache ShardingSphere下面存在一个数据脱敏模块,此模块集成的常用的数据脱敏的功能。...其基本原理是对用户输入的SQL进行解析拦截,并依靠用户的脱敏配置进行SQL的改写,从而实现对原文字段的加密及加密字段的解密。最终实现对用户无感的加解密存储、查询。...脱敏配置Quick Start——Spring版 以下介绍基于Spring如何快速让系统支持脱敏配置。 1. 引入依赖 <!
它把Java的instrument功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。java.lang.instrument是在JVM TI的基础上提供的Java版本的实现。...2.1.2 自定义 打算通过注解进行自定义脱敏,@DesFiled进行标记要脱敏的field,@Desenstized进行标记脱敏的类,通过继承一个basefilter进行脱敏的扩展。...{ } 还有我们的脱敏的filter接口,以及他的实现类用于手机号field的脱敏,其实也就是转换: public interface BaseDesFilter { default T...第二张图是需要先获取到脱敏方法的引用然后传入this.name进行脱敏。 这下我们就知道自己需要做的了,这个时候其实完全不需要看接下来的细节了,可以自己去尝试一下,看看是如何去实现。...Opcodes.ASM5, av, this.info); return avAdapter; } } 通过重写了visitAnnotation,进行判断来获取是否有DesFiled注解以及注解上的信息
shigen坚持日更的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。坚持记录和分享从业两年以来的技术积累和思考,不断沉淀和成长。...背景 在shigen之前的文章一个注解,实现数据脱敏中,有一位读者提到了一个优化项目,优化代码参考: 正巧这是个周末,我再次对我的代码根据这个优化项目优化了一下,代码地址在这里,感兴趣的伙伴可以去看看。...区别于代码案例的作者,这里定义了Customer类型的脱敏,实现用户自定义隐藏字符。...SensitiveJsonSerializer 这里定义的方法和上一版本的基本一致,从注解中获得参数的值,然后调用在枚举中的方法,实现数据的脱敏。 使用 在使用上和之前的也没什么区别。
为什么数据脱敏很重要?因为隐私就是“金库”数据脱敏的重要性不言而喻。想象一下,你的银行账号、电话号码被人公开了,会是什么感觉?这不仅是隐私问题,也是信息安全问题。...所以无论是保护个人隐私还是遵守法律法规,数据脱敏都是必要的手段。3. Java 数据脱敏的常用方式Java 提供了多种数据脱敏方式,今天咱们来聊几种经典实用的“伪装术”。...我们可以用 Java 中的 MessageDigest 来实现哈希。...数据脱敏的实际应用场景在实际项目中,数据脱敏是一个综合性的策略,通常用在:日志系统:日志里可能会记录很多敏感信息,直接展示会导致泄露风险。...总结Java 数据脱敏不仅仅是防止信息泄露的工具,它还是保护用户隐私的一道防线。在实际开发中,选择合适的脱敏方式(遮盖、替换、加密或哈希),能大大提升系统的安全性。
---- 许多系统为了安全需要对敏感信息(如手机号、邮箱、姓名、身份证号、密码、卡号、住址等)的日志打印要求脱敏后才能输出,本文将结合个人经历及总结分享一种log4j日志脱敏方式。...org.apache.logging.log4j.core.layout.PatternLayout; import org.apache.logging.log4j.core.pattern.RegexReplacement; import java.nio.charset.Charset... replaces); } @Override public String toSerializable(LogEvent event) { // 原日志信息...:{}", user); //json logger.infoMessage("用户信息:{}", JSONUtil.toJsonStr(user)); } log.test.LogTest...'股份有限公司', address='浙江省****', tel='0571-12****78', position=[需求, 开发, 测试, 上线]}} log.test.LogTest : 用户信息
用MySQL自身函数实现 - 随机盐加密,解密,脱敏。..., `salt` VARCHAR(255) COMMENT '随机盐,用于生成加密密钥', PRIMARY KEY (`id`) ) ENGINE=InnoDB COMMENT='用户信息表...SELECT CONVERT(AES_DECRYPT(mobile, CONCAT(salt,'MyKey1234567890')) USING utf8) AS mobile FROM user; -- 脱敏数据展示...-- 安装脱敏插件 mysql> INSTALL PLUGIN data_masking SONAME 'data_masking.so'; mysql> SELECT * FROM INFORMATION_SCHEMA.PLUGINS
领取专属 10元无门槛券
手把手带您无忧上云