跳到主要内容
版本:Next

字段加解密

FieldEncrypt:对指定字段执行加密或解密

描述

FieldEncrypt 转换插件用于使用对称加密算法,对记录中的指定字段进行加密或解密。

参数说明

参数名类型是否必填默认值描述
fieldsArray-需要加密或解密的字段列表
algorithmStringAES_GCM加密算法
keyString-Base64 编码的加密密钥
modeStringencrypt操作模式:encryptdecrypt
max_field_lengthInteger10485760处理前允许的最大字符串字段长度

algorithm [string]

用于指定该 transform 所使用的加密算法。

支持的值:

  • AES_GCM:默认值。采用 GCM 模式并包含认证标签(Authentication Tag)的 AES 加密。
  • AES_CBC:采用 CBC 模式及 PKCS5 填充(Padding)的 AES 加密。

AES_GCM 提供认证加密(Authenticated Encryption),安全性更高,推荐使用。

如果未明确指定,系统将默认使用 AES_GCM

key [string]

加密密钥必须以 Base64 编码格式提供。 请确保密钥长度符合所选加密算法的要求。

对于 AES_GCMAES_CBC,支持的密钥长度为 16、24 或 32 字节 (分别对应 AES-128、AES-192 和 AES-256)。

示例

  • base64:AAAAAAAAAAAAAAAAAAAAAA==
  • AAAAAAAAAAAAAAAAAAAAAA==

mode [string]

转换模式。支持 encryptdecrypt。代码会忽略大小写,但新配置建议使用和默认值一致的小写写法。

max_field_length [int]

每个配置字段在加密或解密前允许的最大字符串长度。如果字段值超过该限制,Transform 会直接失败,避免处理异常大的字段值。

common options [string]

Transform 插件的通用参数,请参考 Transform Plugin

示例

字段加密

transform {
FieldEncrypt {
fields = ["name"]
key = "base64:AAAAAAAAAAAAAAAAAAAAAA=="
algorithm = "AES_CBC"
mode = "encrypt"
}
}

字段解密

transform {
FieldEncrypt {
fields = ["name"]
key = "base64:AAAAAAAAAAAAAAAAAAAAAA=="
algorithm = "AES_CBC"
mode = "decrypt"
}
}