第五章 shardingsphere源码-数据加密的整体流程

本文详细描述了ShardingSphere的数据加密流程,包括静态和动态加密机制,以及SQL在ShardingProxy中的处理过程。重点介绍了加密规则的配置和SQL的一生,展示了加密如何自动化地融入到数据库操作中。


一、整体架构

上一篇文章说了shardingsphere是启动的,借助与netty框架

整体数据加解密的流程
在这里插入图片描述

1.处理流程

ShardingSphere 通过对用户输入的 SQL 进行解析,并依据用户提供的加密规则对 SQL 进行改写,从而实现对原文数据进行加密。 在用户查询数据时,它仅从数据库中取出密文数据,并对其解密,最终将解密后的原始数据返回给用户。 Apache ShardingSphere 自动化 & 透明化了数据加密过程,让用户无需关注数据加密的实现细节,像使用普通数据那样使用加密数据。
它更多的是提供列级加密,可以实现两种加密方式。

  1. 静态加密,在配置文件中定义,缺点:如果重新配置加密字段的话,需要重启proxy
rules:
  - !ENCRYPT
    encryptors:
      # 加密器的名称,下面会使用
      test_col1:
        props:
          # 加密模式两种常用的 ECB、CBC
          sm4-mode: ECB
          sm4-key: a5731fb991a6f45b8b5fe45d43fc3a81
          sm4-padding: PKCS5Padding
          # 加密算法标识
        type: MySm4
    queryWithCipherColumn: true
    tables:
     # 表名
      test:
        columns:
          # 逻辑列(这个逻辑列和实际物理列名一致)
          col1:
            # 实际物理列名,
            cipherColumn: col1
            # 加密器名称,上面定义的
            encryptorName: test_col1
            # 用户想要使用 查询的列名,相当于一个逻辑的作用
            logicColumn: col1
        name: test
  1. 动态加密,需要连接上代理,就和navicat连接mysql一样,执行shardingsphere自己的语言 distsql

创建加密规则:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值