@SensitiveEncryptEnabled @Data public class UserDTO { private Integer id; /** * 用户名 */ @EncryptField private String userName; /** * 脱敏的用户名 */ @SensitiveField(SensitiveType.CHINESE_NAME) private String userNameSensitive; /** * 值的赋值不从数据库取,而是从userName字段获得。 */ @Sen...
mybatis-encrypt-plugin 是MyBatis 的一个扩展插件,它利用了 MyBatis 提供的插件机制来增强 MyBatis 的功能。MyBatis 允许开发者通过插件机制拦截 SQL 语句的执行过程,而 mybatis-encrypt-plugin 正是利用了这一点,在 SQL 语句执行前后对敏感数据进行加解密和脱敏处理。提供...
addInterceptor(sensitiveAndEncryptWriteInterceptor); }; } } 2,在vo类上添加功能注解使得插件生效: @SensitiveEncryptEnabled @Data public class UserDTO { private Integer id; /** * 用户名 */ @EncryptField private String userName; /** * 脱敏的用户名 */ @SensitiveField(SensitiveType.CHINESE_NAME)...
在实体类和字段上添加@EncryptDecryptClass和@EncryptDecryptField注解,保存时自动加密添加注解的字段,查询时自动解密,业务无感知。 @Data@Accessors(chain =true)@TableName("test_student")@EncryptDecryptClasspublicclassTestStudentextendsBaseEntity{//主键@TableId(type = IdType.AUTO)privateLong sid;//学生姓名@...
RUNTIME) @Inherited @Documented public @interface TEncrypt { /** * 加密时从srcKey到destKey * @return */ String[] srcKey() default {}; /** * 解密时从destKey到srcKey * @return */ String[] destKey() default {}; } 将该注解打在需要加解密的DAO层方法上。 代码语言:javascript 代码...
*/@Target({ ElementType.METHOD })@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic@interfaceTEncrypt {/** * 加密时从srcKey到destKey * @return */String[]srcKey()default{};/** * 解密时从destKey到srcKey * @return */String[]destKey()default{}; ...
public @interface TEncrypt { /** * 加密时从srcKey到destKey * @return */ String[] srcKey() default {}; /** * 解密时从destKey到srcKey * @return */ String[] destKey() default {}; } 将该注解打在需要加解密的DAO层方法上。
/**• 通过注解来表明,我们需要对那个字段进行加密/@Target({ ElementType.METHOD })@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic @interface TEncrypt {/*• 加密时从srcKey到destKey• @return*/String[]srcKey()default{};/**• 解密时从destKey到srcKey• @return*/String[]dest...
aesManager.encrypt(declaredFields, param1); } }catch (Exception e){ } } return invocation.proceed(); } @Override public Object plugin(Object target) { return Plugin.wrap(target, this); } @Override public void setProperties(Properties properties) { ...
<result column="phone" property="phone" typeHandler="com.huan.study.mybatis.typehandler.EncryptTypeHandler"/> Plugin : 可以拦截系统中的 select、insert、update、delete等语句,也能获取到sql执行前的参数和执行后的数据。 经过考虑,决定使用TypeHandler来加解密数据。 三、需求 我们有一张客户表customer,里面...