数据加密 #
配置项说明 #
1.5.0 版本调整了加密的 API 配置,为方便使用同时也兼容了老的 API 配置
1.5.0 版本之后新的 API 配置 #
rules:
- !ENCRYPT
tables:
<table-name> (+): # 加密表名称
columns:
<column-name> (+): # 加密列名称
dataType: # 逻辑列类型
plain: # 明文配置
name: # 明文列名称a
dataType: # 明文列数据类型长度
cipher: # 密文配置
name: # 密文列名称
dataType: # 明文列数据类型长度
encryptorName: # 加密算法名称
assistedQuery: # 查询辅助列配置
name: # 查询辅助列名称
dataType: # 查询辅助列数据类型长度
encryptorName: # 查询辅助算法
likeQuery: # 模糊查询列配置
name: # 模糊查询列名称
dataType: # 模糊查询列数据类型长度
encryptorName: # 模糊查询算法
queryWithCipherColumn: true # 使用密文列查询列级配置
queryWithCipherColumn: true # 使用密文列查询表级配置
queryWithCipherColumn: true # 使用密文列查询rule级配置
# 加密算法配置
encryptors:
<encrypt-algorithm-name> (+): # 加解密算法名称
type: # 加解密算法类型
props: # 加解密算法属性配置
# ...
queryWithCipherColumn: # 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询
# 密钥存储管理配置
keyManagers:
<key-manager-name> (+): # 密钥存储管理器名称
type: # 密钥存储管理器类型,支持 Local 存储,AWS 云端存储
props: # 密钥存储管理器属性配置
# ...
- 示例
rules:
- !ENCRYPT
encryptors:
aes_encryptor:
type: AES
props:
aes-key-value: 123456abc
char_digest_like_encryptor:
type: CHAR_DIGEST_LIKE
props:
delta: 2
md5_assisted_encryptor:
type: MD5
props:
salt: 121212
tables:
t_merchant:
columns:
merchant_name:
dataType: varchar(20)
plain:
name: merchant_name_plain
dataType: varchar(20)
cipher:
name: merchant_name_cipher
dataType: varchar(100)
encryptorName: aes_encryptor
assistedQuery:
name: merchant_name_assisted
dataType: varchar(100)
encryptorName: md5_assisted_encryptor
likeQuery:
name: merchant_name_like
dataType: varchar(50)
encryptorName: char_digest_like_encryptor
queryWithCipherColumn: true
queryWithCipherColumn: true
queryWithCipherColumn: true
1.5.0 版本后的兼容老的 API 配置 #
rules:
- !COMPATIBLE_ENCRYPT
tables:
<table-name> (+): # 加密表名称
columns:
<column-name> (+): # 加密列名称
dataType: # 逻辑列类型
cipherColumn: # 密文列名称
cipherDataType: # 加密列类型
assistedQueryColumn (?): # 查询辅助列名称
assistedQueryDataType: # 查询辅助列类型
plainColumn (?): # 原文列名称
plainDataType: # 原文列类型
encryptorName: # 加密算法名称
queryWithCipherColumn(?): # 该表是否使用加密列进行查询
# 加密算法配置
encryptors:
<encrypt-algorithm-name> (+): # 加解密算法名称
type: # 加解密算法类型
props: # 加解密算法属性配置
# ...
queryWithCipherColumn: # 是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询
# 密钥存储管理配置
keyManagers:
<key-manager-name> (+): # 密钥存储管理器名称
type: # 密钥存储管理器类型,支持 Local 存储,AWS 云端存储
props: # 密钥存储管理器属性配置
# ...
- 示例
rules:
- !COMPATIBLE_ENCRYPT
encryptors:
aes_encryptor:
type: AES
props:
aes-key-value: 123456abc
char_digest_like_encryptor:
type: CHAR_DIGEST_LIKE
props:
delta: 2
md5_assisted_encryptor:
type: MD5
props:
salt: 123456
tables:
t_merchant:
columns:
merchant_name:
dataType: varchar(20)
plainColumn: merchant_name_plain
plainDataType: varchar(20)
cipherColumn: merchant_name_cipher
cipherDataType: varchar(100)
encryptorName: aes_encryptor
assistedQueryColumn: merchant_name_assisted
assistedQueryDataType: varchar(100)
assistedQueryEncryptorName: md5_assisted_encryptor
likeQueryColumn: merchant_name_like
likeQueryDataType: varchar(50)
likeQueryEncryptorName: char_digest_like_encryptor
queryWithCipherColumn: true
queryWithCipherColumn: true
queryWithCipherColumn: true