一、背景
数据加密是指对某些敏感信息通过加密规则进行数据的变形,实现敏感隐私数据的可靠保护。涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照相关部门规定,都需要进行数据加密。
一般有两种情况:
新业务上线
·加密存储,使用解密
已上线业务
·历史数据需要如何加密;
·如何在不改的sql和业务逻辑的情况下,将新的数据进行加密存储,使用解密;
·如果较为安全、无缝、透明化的实现业务系统在明文与密文数据间的迁移。
二、配置文件加密
数据加密YAML 配置方式具有非凡的可读性,通过 YAML 格式,能够快速地理解加密规则之间的依赖关系,ShardingSphere 会根据 YAML 配置,自动完成 ShardingSphereDataSource 对象的创建,减少用户不必要的编码工作。
在YAML 文件中配置数据加密规则,包含数据源、加密规则、全局属性等配置项。
参数解释
三、加密算法
MD5加密(不可逆的加密算法)
可配置属性:
名称 | 数据类型 | 说明 |
salt | String | 盐值(可选) |
配置
查询
AES加密
可配置属性:
名称 | 数据类型 | 说明 |
aes-key-value | String | AES 使用的 KEY |
配置
查询
RC4加密
可配置属性:
名称 | 数据类型 | 说明 |
c4-key-value | String | RC4 使用的 KEY |
SM3加密
可配置属性:
名称 | 数据类型 | 说明 |
sm3-salt | String | SM3 使用的 SALT(空或 8 Bytes) |
SM4加密
可配置属性:
名称 | 数据类型 | 说明 |
sm4-key | String | SM4 使用的 KEY (16 Bytes) |
sm4-mode | String | SM4 使用的 MODE (CBC 或 ECB) |
sm4-iv | String | SM4 使用的 IV (MODE 为 CBC 时需指定,16 Bytes) |
sm4-padding | String | SM4 使用的 PADDING (PKCS5Padding 或 PKCS7Padding,暂不支持 NoPadding) |
模糊加密
单字符摘要模糊加密算法
类型:CHAR_DIGEST_LIKE
可配置属性:
名称 | 数据类型 | 说明 |
delta | int | 字符Unicode码偏移量(十进制) |
mask | int | 字符加密掩码(十进制) |
start | int | 密文Unicode初始码(十进制) |
dict | String | 常见字 |