返回顶部
首页 > 资讯 > 后端开发 > Python >如何通过一个注解实现MyBatis字段加解密
  • 323
分享到

如何通过一个注解实现MyBatis字段加解密

2024-04-02 19:04:59 323人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录简介模块使用方法配置项说明开源链接总结简介 mybatis-crypto 是一个基于 mybatis 插件机制实现的字段加解密组件,通过一个注解即可对敏感数据进行加解密处理。 支

简介

mybatis-crypto 是一个基于 mybatis 插件机制实现的字段加解密组件,通过一个注解即可对敏感数据进行加解密处理。 支持自定义 Encryptor、特殊字段单独指定 Encryptor 和 key ,满足大部分使用场景。

模块

mybatis-crypto 包括三个模块:

  • mybatis-crypto-core 插件的核心功能模块
  • mybatis-crypto-spring-boot-starter 提供了 Spring Boot 快速整合功能
  • mybatis-crypto-encryptors 提供了一些 IEncryptor 实现

使用方法

引入依赖

<dependency>
    <groupId>io.GitHub.whitedg</groupId>
    <artifactId>mybatis-crypto-spring-boot-starter</artifactId>
    <version>${latest.version}</version>
</dependency>

实现 IEncryptor

import io.github.whitedg.mybatis.crypto.IEncryptor;
public class MyEncryptor implements IEncryptor {
    @Override
    public String encrypt(Object val2bEncrypted, String key) throws Exception {
        // 实现这个方法返回加密后的数据
        return "encrypted string";
    }

    @Override
    public String decrypt(Object val2bDecrypted, String key) throws Exception {
        // 实现这个方法返回解密后的数据
        return "decrypted string";
    }
}

或者引入 mybatis-crypto-encryptors

<dependency>
    <groupId>io.github.whitedg</groupId>
    <artifactId>mybatis-crypto-encryptors</artifactId>
    <version>${latest.version}</version>
</dependency>

使用其提供的 Encryptor:

  • io.github.whitedg.mybatis.crypto.Base64Encryptor
  • io.github.whitedg.mybatis.crypto.BasicTextEncryptor
  • io.github.whitedg.mybatis.crypto.AES256Encryptor
  • io.github.whitedg.mybatis.crypto.StrongTextEncryptor

添加配置

mybatis-crypto:
  # 是否启用插件,默认 true
  enabled: true
  # 快速失败,默认 true
  fail-fast: false
  # 全局默认 Encryptor
  default-encryptor: io.github.whitedg.mybatis.crypto.BasicTextEncryptor
  # Encryptor 默认密钥
  default-key: global-key
  # mybatis @Param 注解下需要加解密的参数 key 前缀
  mapped-key-prefixes: et,encrypted

指定加密字段

  • 在需要加解密的字段上添加注解 @EncryptedField
public class User {
    @EncryptedField
    private String encryptedStr;

    @EncryptedField(encryptor = YourEncryptor.class, key = "Your Key")
    private String customizedStr;
}
  • 使用配置的 @Param 参数 key 前缀
import org.apache.ibatis.annotations.Param;
interface YourEntityMapper {
    int insert(@Param("et") YourEntity entity);
    // 支持数组
    int batchInsert(@Param("encrypted-entities") List<YourEntity> entity);
    // 返回值也支持单个对象或数组
    YourEntity selectOne();
    List<YourEntity> selectList();
}

Demo

配置项说明

配置项说明默认值
mybatis-crypto.enabled是否启用 mybatis-cryptotrue
mybatis-crypto.fail-fast快速失败,加解密过程中发生异常是否中断。true:抛出异常,false:使用原始值,打印 warn 级别日志true
mybatis-crypto.mapped-key-prefixes@Param 参数名的前缀,前缀匹配则会进行加密处理
mybatis-crypto.default-encryptor全局默认 Encryptor
mybatis-crypto.default-key全局默认 Encryptor 的密钥

开源链接

github.com/WhiteDG/myb…

总结

到此这篇关于如何通过一个注解实现MyBatis字段加解密的文章就介绍到这了,更多相关注解实现MyBatis字段加解密内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何通过一个注解实现MyBatis字段加解密

本文链接: https://lsjlt.com/news/139044.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何通过一个注解实现MyBatis字段加解密
    目录简介模块使用方法配置项说明开源链接总结简介 mybatis-crypto 是一个基于 mybatis 插件机制实现的字段加解密组件,通过一个注解即可对敏感数据进行加解密处理。 支...
    99+
    2024-04-02
  • 怎么通过一个注解实现MyBatis字段加解密
    这篇文章主要讲解了“怎么通过一个注解实现MyBatis字段加解密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过一个注解实现MyBatis字段加解密”吧!简介mybatis-crypt...
    99+
    2023-06-29
  • mybatis如何实现特殊字段加密
    这篇文章主要为大家展示了“mybatis如何实现特殊字段加密”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mybatis如何实现特殊字段加密”这篇文章吧。一、背景在我们数据库中有些时候会保存一些...
    99+
    2023-06-29
  • Java操作MyBatis-Plus通过自定义拦截器对mysql字段以注解形式实现自动加解密
    一.需求背景 跟大学室友闲谈时,了解到他公司正在做项目内对数据库敏感字段实现自动加解密的需求,使用的技术是Springboot,Mybatis-Plus,MySql等技术栈,加密算法是用的AES,密钥是放在华为云,这里实现一个阉割版的dem...
    99+
    2023-09-06
    mybatis mysql java
  • Java通过MySQL的加解密函数实现敏感字段存储
    java通过mysql的加解密函数实现敏感字段存储 1.AES加解密工具类: public class AESUtils { public static String e...
    99+
    2024-04-02
  • mybatis-plus 拦截器敏感字段加解密的实现
    目录背景一、查询拦截器二、插入和更新拦截器三、注解背景 数据库在保存数据时,对于某些敏感数据需要脱敏或者加密处理,如果一个一个的去加显然工作量大而且容易出错,这个时候可以考虑使用拦截...
    99+
    2024-04-02
  • MyBatis-Plus如何实现自动加密解密
    目录MyBatis-Plus 自动加密解密实现TypeHandler添加注解查询加密字段MyBatis-Plus 敏感数据的加密写加密解密的工具类继承BaseTypeHandler ...
    99+
    2024-04-02
  • 通过Golang编写一个AES加密解密工具
    目录前言AES加密介绍及实现原理AES用在哪里AES加密是如何实现的AES加密模式Go实现AES加密工具scode前言 本文包含如下两个内容: AES加密介绍及实现原理 Go实现AE...
    99+
    2024-04-02
  • MyBatis-Plus如何通过注解使用TypeHandler
    目录通过注解使用TypeHandler官方示例Kotlin案例自定义TypeHandler使用通过注解使用TypeHandler 在使用MyBatis时,我们与数据表中字段映射的ja...
    99+
    2024-04-02
  • sql如何实现对密码字段加密
    在SQL中实现对密码字段加密的方法有很多种,以下是其中一种常见的方法: 使用加密函数:可以使用内置的加密函数如MD5、SHA1等来...
    99+
    2024-04-02
  • 怎么通过Golang编写一个AES加密解密工具
    本篇内容主要讲解“怎么通过Golang编写一个AES加密解密工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么通过Golang编写一个AES加密解密工具”吧!AES加密介绍及实现原理AES(...
    99+
    2023-06-30
  • sql如何在一个表中添加字段并添加备注
    这篇文章主要介绍sql如何在一个表中添加字段并添加备注,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、加字段:alter table 表名 ADD 字段名 类型;eg:alter&...
    99+
    2024-04-02
  • mybatis-plus拦截器敏感字段加解密的实现方法是什么
    本篇内容主要讲解“mybatis-plus拦截器敏感字段加解密的实现方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis-plus拦截器敏感字段加解密的实现方法是什么”吧!背景...
    99+
    2023-06-25
  • SpringBoot 自定义注解实现涉密字段脱敏
    目录1. 创建隐私数据类型枚举:PrivacyTypeEnum2. 创建自定义隐私注解:PrivacyEncrypt3. 创建自定义序列化器:PrivacySerializer4. ...
    99+
    2023-03-24
    SpringBoot自定义注解 涉密字段脱敏
  • 详解Springboot如何通过注解实现接口防刷
    目录前言1、实现防刷切面PreventAop.java1.1 定义注解Prevent1.2 实现防刷切面PreventAop2、使用防刷切面3、演示前言 本文介绍一种极简洁、灵活通用...
    99+
    2024-04-02
  • 详解如何通过Python制作一个密码生成器
    目录原由编程思路代码效果如下补充原由 定期更换密码是一种非常重要的安全措施,这种做法可以有效地保护你的账户和个人信息不受黑客和网络攻击者的侵害。 密码泄露是一个非常普遍的问题,许多人...
    99+
    2023-05-19
    Python实现密码生成器 Python密码生成器 Python密码
  • VBS如何实现加密解密
    这篇文章主要为大家展示了“VBS如何实现加密解密”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VBS如何实现加密解密”这篇文章吧。用法: 1.copy下面代码至文本文档 2.将文件后缀名改为.v...
    99+
    2023-06-08
  • PHP如何实现加密解密
    这篇文章主要为大家展示了“PHP如何实现加密解密”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP如何实现加密解密”这篇文章吧。加密解密function encrypt($data,...
    99+
    2023-06-03
  • springboot实现敏感字段加密存储解密显示功能
    springboot实现敏感字段加密存储,解密显示,通过mybatis,自定义注解+AOP切面,Base64加解密方式实现功能。 1.代码实现: 创建springboot项目 添加依...
    99+
    2024-04-02
  • mybatis类型转换器如何实现数据加解密
    目录mybatis类型转换器数据加解密背景需求mybatis 类型转换器数据加解密类型转换使用方法mybatis密码解密mybatis的配置properties的配置mybatis类...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作