返回顶部
首页 > 资讯 > 精选 >怎么通过一个注解实现MyBatis字段加解密
  • 405
分享到

怎么通过一个注解实现MyBatis字段加解密

2023-06-29 04:06:34 405人浏览 安东尼
摘要

这篇文章主要讲解了“怎么通过一个注解实现mybatis字段加解密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过一个注解实现MyBatis字段加解密”吧!简介mybatis-crypt

这篇文章主要讲解了“怎么通过一个注解实现mybatis字段加解密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过一个注解实现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 的密钥

感谢各位的阅读,以上就是“怎么通过一个注解实现MyBatis字段加解密”的内容了,经过本文的学习后,相信大家对怎么通过一个注解实现MyBatis字段加解密这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

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

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

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

猜你喜欢
  • 怎么通过一个注解实现MyBatis字段加解密
    这篇文章主要讲解了“怎么通过一个注解实现MyBatis字段加解密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过一个注解实现MyBatis字段加解密”吧!简介mybatis-crypt...
    99+
    2023-06-29
  • 如何通过一个注解实现MyBatis字段加解密
    目录简介模块使用方法配置项说明开源链接总结简介 mybatis-crypto 是一个基于 mybatis 插件机制实现的字段加解密组件,通过一个注解即可对敏感数据进行加解密处理。 支...
    99+
    2024-04-02
  • 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
  • 怎么通过Golang编写一个AES加密解密工具
    本篇内容主要讲解“怎么通过Golang编写一个AES加密解密工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么通过Golang编写一个AES加密解密工具”吧!AES加密介绍及实现原理AES(...
    99+
    2023-06-30
  • 通过Golang编写一个AES加密解密工具
    目录前言AES加密介绍及实现原理AES用在哪里AES加密是如何实现的AES加密模式Go实现AES加密工具scode前言 本文包含如下两个内容: AES加密介绍及实现原理 Go实现AE...
    99+
    2024-04-02
  • mybatis-plus拦截器敏感字段加解密的实现方法是什么
    本篇内容主要讲解“mybatis-plus拦截器敏感字段加解密的实现方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis-plus拦截器敏感字段加解密的实现方法是什么”吧!背景...
    99+
    2023-06-25
  • SpringBoot怎么自定义注解实现涉密字段脱敏
    这篇文章主要讲解了“SpringBoot怎么自定义注解实现涉密字段脱敏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么自定义注解实现涉密字段脱敏”吧!关于数据脱敏,网上...
    99+
    2023-07-05
  • 怎么在Oracle中通过一个关键字匹配多个字段
    怎么在Oracle中通过一个关键字匹配多个字段?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。分析:一般情况下,我们的一个输入框...
    99+
    2024-04-02
  • SpringBoot 自定义注解实现涉密字段脱敏
    目录1. 创建隐私数据类型枚举:PrivacyTypeEnum2. 创建自定义隐私注解:PrivacyEncrypt3. 创建自定义序列化器:PrivacySerializer4. ...
    99+
    2023-03-24
    SpringBoot自定义注解 涉密字段脱敏
  • MyBatis @Param注解怎么实现
    本文小编为大家详细介绍“MyBatis @Param注解怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“MyBatis @Param注解怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-29
  • 使用Java怎么实现一个3des加密解密工具类
    这期内容当中小编将会给大家带来有关使用Java怎么实现一个3des加密解密工具类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:package com.gcloud.common;imp...
    99+
    2023-05-30
    java 3des
  • VB.NET中怎么实现字符串加密解密
    这篇文章给大家介绍VB.NET中怎么实现字符串加密解密,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。VB.NET字符串加密解密的安全说明: 与 DES 相比,Rijndael(现在称为“高级加密标准”[AES])和“三...
    99+
    2023-06-17
  • 使用Mybatis注解怎么实现一个单表、多表操作
    本篇文章给大家分享的是有关使用Mybatis注解怎么实现一个单表、多表操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一.Mybatis注解开发单表操作 ***1.1 MyB...
    99+
    2023-06-06
  • 怎么在SpringBoot中通过自定义注解实现一个Token校验功能
    本篇文章为大家展示了怎么在SpringBoot中通过自定义注解实现一个Token校验功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。定义Token的注解,需要Token校验的接口,方法上加上此注解...
    99+
    2023-06-14
  • springboot实现敏感字段加密存储解密显示功能
    springboot实现敏感字段加密存储,解密显示,通过mybatis,自定义注解+AOP切面,Base64加解密方式实现功能。 1.代码实现: 创建springboot项目 添加依...
    99+
    2024-04-02
  • java通过注解翻译字典的实现示例
    最近在写代码时遇到一个需要将entity字段通过字典翻译成真实值的场景,原来的做法是通过主表字段和字典表关联的形式,当一个需要大量翻译的场景时,大量的关联会造成sql阅读的不友好,所...
    99+
    2024-04-02
  • 怎么用一个DIV画图通过background-image叠加实现
    小编给大家分享一下怎么用一个DIV画图通过background-image叠加实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!...
    99+
    2024-04-02
  • 怎么通过Go语言实现凯撒加密
    小编给大家分享一下怎么通过Go语言实现凯撒加密,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在 2 世纪, 发送机密消息的一个有效方法就是对每个字母进行位移, 使...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作