ShardingSphere集成Mybatis Plus使用ShardingSphere最新版本5.1.2--加密算法

前言

该demo展示ShardingSphere 5.1.2版本加密算法的基本配置(其他配置见专栏其他文章),和4.1.1版本相比,改动较大,资料也很少。这个版本不建议使用,建议使用4.1.1,资料比较多,漏洞也少。在5.1.2版本中,配置逻辑列后,再配置加密列和明文列时,会导致加密失败,不起作用。原因是在查找加密方法时,逻辑列是表的列名,而不是配置的逻辑列名。导致加解密失效:
可以看到逻辑列的值为数据表列名,key是配置的值,导致找不到相关配置
还有个问题,在配置明文列后,或者在配置中配置了2个不同的配置列名后,Sharing Sphere会在改写时SQL中将多配置的列生成2次,导致报错:
在这里插入图片描述

yml加密配置

application-encrypt.yml

spring:
  shardingsphere:
    rules:
      sharding:
        tables:
           c_user:
             actual-data-nodes: ftdb$->{0}.c_user

             table-strategy:
                standard:
                   key-generator:
                      column: id
                      key-generator-name: MYKEY
      encrypt:
        tables:
            c_user:
                columns:
                  pwd_cipher:
                      cipher-column: pwd_cipher
                      encryptor-name: ftaes_encryptor
                      query-with-cipher-column: true


        encryptors:
          ftaes_encryptor:
            type: MD5
            # AES加密配置
#            type: AES
#            props:
#              aes-key-value: 1234

将加密配置引入主application.yml中:
在这里插入图片描述

测试结果

可以看到插入成功
在这里插入图片描述

查询测试

查询时需要注意,该版本不支持like,BETWEEN…AND.,支持的查询有如下和in,not in:
有不支持的查询条件时,会提示报错原因
查询结果示例:
在这里插入图片描述
可以看到对查询的参数进行了加密,由于示例中使用的是MD5加密,所以返回的是密文,如果使用AES加密,则返回明文。

这是对ShardingSphere最新版本5.1.2–加密算法的简单demo,关于明文列的配置和逻辑列的配置失效的问题,欢迎大家探讨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值