Logo
数据加密

数据加密 #

配置项说明 #

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