一、整体架构
上一篇文章说了shardingsphere是启动的,借助与netty框架
整体数据加解密的流程
1.处理流程
ShardingSphere 通过对用户输入的 SQL 进行解析,并依据用户提供的加密规则对 SQL 进行改写,从而实现对原文数据进行加密。 在用户查询数据时,它仅从数据库中取出密文数据,并对其解密,最终将解密后的原始数据返回给用户。 Apache ShardingSphere 自动化 & 透明化了数据加密过程,让用户无需关注数据加密的实现细节,像使用普通数据那样使用加密数据。
它更多的是提供列级加密,可以实现两种加密方式。
- 静态加密,在配置文件中定义,缺点:如果重新配置加密字段的话,需要重启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
- 动态加密,需要连接上代理,就和navicat连接mysql一样,执行shardingsphere自己的语言 distsql
创建加密规则:

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

最低0.47元/天 解锁文章
3559

被折叠的 条评论
为什么被折叠?



