最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何通過一個(gè)注解實(shí)現(xiàn)MyBatis字段加解密

 更新時(shí)間:2022年02月14日 09:59:54   作者:Wh1te  
用戶隱私很重要,因此很多公司開始做數(shù)據(jù)加減密改造,下面這篇文章主要給大家介紹了關(guān)于如何通過一個(gè)注解實(shí)現(xiàn)MyBatis字段加解密的相關(guān)資料,需要的朋友可以參考下

簡介

mybatis-crypto 是一個(gè)基于 mybatis 插件機(jī)制實(shí)現(xiàn)的字段加解密組件,通過一個(gè)注解即可對(duì)敏感數(shù)據(jù)進(jìn)行加解密處理。 支持自定義 Encryptor、特殊字段單獨(dú)指定 Encryptor 和 key ,滿足大部分使用場(chǎng)景。

模塊

mybatis-crypto 包括三個(gè)模塊:

  • mybatis-crypto-core 插件的核心功能模塊
  • mybatis-crypto-spring-boot-starter 提供了 Spring boot 快速整合功能
  • mybatis-crypto-encryptors 提供了一些 IEncryptor 實(shí)現(xiàn)

使用方法

引入依賴

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

實(shí)現(xiàn) IEncryptor

import io.github.whitedg.mybatis.crypto.IEncryptor;
public class MyEncryptor implements IEncryptor {
    @Override
    public String encrypt(Object val2bEncrypted, String key) throws Exception {
        // 實(shí)現(xiàn)這個(gè)方法返回加密后的數(shù)據(jù)
        return "encrypted string";
    }

    @Override
    public String decrypt(Object val2bDecrypted, String key) throws Exception {
        // 實(shí)現(xiàn)這個(gè)方法返回解密后的數(shù)據(jù)
        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:
  # 是否啟用插件,默認(rèn) true
  enabled: true
  # 快速失敗,默認(rèn) true
  fail-fast: false
  # 全局默認(rèn) Encryptor
  default-encryptor: io.github.whitedg.mybatis.crypto.BasicTextEncryptor
  # Encryptor 默認(rèn)密鑰
  default-key: global-key
  # mybatis @Param 注解下需要加解密的參數(shù) 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 參數(shù) key 前綴
import org.apache.ibatis.annotations.Param;
interface YourEntityMapper {
    int insert(@Param("et") YourEntity entity);
    // 支持?jǐn)?shù)組
    int batchInsert(@Param("encrypted-entities") List<YourEntity> entity);
    // 返回值也支持單個(gè)對(duì)象或數(shù)組
    YourEntity selectOne();
    List<YourEntity> selectList();
}

Demo

配置項(xiàng)說明

配置項(xiàng)說明默認(rèn)值
mybatis-crypto.enabled是否啟用 mybatis-cryptotrue
mybatis-crypto.fail-fast快速失敗,加解密過程中發(fā)生異常是否中斷。true:拋出異常,false:使用原始值,打印 warn 級(jí)別日志true
mybatis-crypto.mapped-key-prefixes@Param 參數(shù)名的前綴,前綴匹配則會(huì)進(jìn)行加密處理
mybatis-crypto.default-encryptor全局默認(rèn) Encryptor
mybatis-crypto.default-key全局默認(rèn) Encryptor 的密鑰

開源鏈接

github.com/WhiteDG/myb…

總結(jié)

到此這篇關(guān)于如何通過一個(gè)注解實(shí)現(xiàn)MyBatis字段加解密的文章就介紹到這了,更多相關(guān)注解實(shí)現(xiàn)MyBatis字段加解密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 快速解決 MyBatis-Plus 中 ID 自增問題(推薦)

    快速解決 MyBatis-Plus 中 ID 自增問題(推薦)

    本文介紹了MyBatis-Plus中自動(dòng)生成ID過長導(dǎo)致的問題及解決方法,結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-02-02
  • SpringBoot和VUE源碼直接整合打包成jar的踩坑記錄

    SpringBoot和VUE源碼直接整合打包成jar的踩坑記錄

    這篇文章主要介紹了SpringBoot和VUE源碼直接整合打包成jar的踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • java后臺(tái)批量下載文件并壓縮成zip下載的方法

    java后臺(tái)批量下載文件并壓縮成zip下載的方法

    這篇文章主要為大家詳細(xì)介紹了java后臺(tái)批量下載文件并壓縮成zip下載的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 深入探究Java線程與進(jìn)程有哪些區(qū)別

    深入探究Java線程與進(jìn)程有哪些區(qū)別

    這篇文章主要介紹了Java并發(fā)編程之線程創(chuàng)建,進(jìn)程是代碼在數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,線程則是一個(gè)實(shí)體,一個(gè)進(jìn)程中至少有一個(gè)線程,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • JAVA通過XPath解析XML性能比較詳解

    JAVA通過XPath解析XML性能比較詳解

    本篇文章主要介紹了JAVA通過XPath解析XML性能比較詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Spring?MVC DispatcherServlet處理請(qǐng)求過程示例詳解

    Spring?MVC DispatcherServlet處理請(qǐng)求過程示例詳解

    這篇文章主要介紹了Spring?MVC?DispatcherServlet處理請(qǐng)求過程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 微信公眾號(hào)支付(二)實(shí)現(xiàn)統(tǒng)一下單接口

    微信公眾號(hào)支付(二)實(shí)現(xiàn)統(tǒng)一下單接口

    本篇文章主要給大家介紹調(diào)用微信公眾支付的統(tǒng)一下單API,通過參數(shù)封裝為xml格式并發(fā)送到微信給的接口地址就可以獲得返回內(nèi)容,需要的朋友可以參考下本文
    2015-09-09
  • Java之MyBatis入門詳解

    Java之MyBatis入門詳解

    這篇文章主要介紹了Java之MyBatis入門詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Spring框架依賴注入方法示例

    Spring框架依賴注入方法示例

    這篇文章主要介紹了Spring框架依賴注入方法示例,分享了三種方法示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot讀取配置文件的6種實(shí)現(xiàn)方式

    SpringBoot讀取配置文件的6種實(shí)現(xiàn)方式

    這篇文章主要介紹了SpringBoot讀取配置文件的6種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評(píng)論

尚志市| 自治县| 株洲县| 乌兰浩特市| 迭部县| 石屏县| 玉田县| 即墨市| 庄浪县| 吉林市| 铜陵市| 凤翔县| 乌兰县| 苗栗县| 仁布县| 荃湾区| 扶风县| 宜宾县| 临朐县| 临安市| 桑植县| 郯城县| 万载县| 兰溪市| 景泰县| 济宁市| 遂昌县| 和林格尔县| 邵武市| 额济纳旗| 金秀| 佛坪县| 桐庐县| 达尔| 长汀县| 吐鲁番市| 阿图什市| 永春县| 腾冲县| 绥德县| 大同县|