脱敏函数
更新时间:2026-02-05
脱敏函数
简介
本文主要介绍脱敏函数的语法规则,包括参数说明、函数示例等。
mask 函数
函数定义
脱敏日志中的敏感信息。
语法描述
mask函数支持两种模式,buildin模式和keyword模式
Text
1mask("xxx", '[{"mode":"buildin","types":["IP_ADDRESS","EMAIL","LANDLINE_PHONE"]}]')
2mask("xxx",'[{"mode":"keyword","keys":["wallet","address","sourceIp","phone","transactionHash"], "maskChar":"*","keepPrefix":3,"keepSuffix":3}]')
参数说明
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| data | 需要被脱敏的数据 | String | 是 | - | - |
| param | 脱敏配置 | String | 是 | - | - |
param参数
| 参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
|---|---|---|---|---|---|
| mode | 选择脱敏模式: keyword:关键字匹配,智能识别任意文本中符合"key":"value"、'key':'value'或key=value等常见KV对格式的敏感信息。 buildin:内置规则匹配 |
String | 是 | - | - |
| types | 内置规则列表: • PHONE:匹配中国内地手机号(11 位数字,通常以 13/15/17/18/19 开头)。 例如: 13812345678、+8613812345678、(+86)13812345678• IDCARD:匹配中国内地身份证号(18 位数字 + 字母,包含行政区划代码、出生日期、顺序码等)。 • LANDLINE_PHONE:匹配中国内地固定电话号码。 ◦ 形式:中国内地固话。 ◦ 规则:区号 2–4 位且首位为 0;支持 (010)- 或 010-;本地号 7–8 位。例如: (010)12345678、010-1234567• CREDIT_CARD:匹配信用卡 / 借记卡号(16–19 位数字),支持 Visa=4、MC=51–55 / 2221–2720、Amex=34/37、Discover=6011/65、UnionPay=62(支持当前几种格式)。 • IP_ADDRESS:匹配 IPv4 地址(格式: xxx.xxx.xxx.xxx)。• EMAIL:匹配标准电子邮件地址。 ◦ 形式: local-part@domain.tld◦ 规则:local 支持字母数字、下划线、连字符和点;必须有且仅有一个 @;domain 允许字母数字与连字符,必须包含点,末尾 TLD 至少 2 字符。 |
String | mode选择buildin 模式必填。 | - | - |
| maskChar | 用于脱敏的字符,默认为 *。 | String | mode选择keyword模式必填 | - | - |
| keepPrefix | 保留字段开头的字符数,例如 keepPrefix:3 保留前3位字符。 | String | 否 | - | - |
| keepSuffix | 保留字段结尾的字符数,例如 keepSuffix:3 保留后3位字符。 | String | 否 | - | - |
示例
- 示例1
原始日志:
Text
1{"a": "a", "b": "aaa phone: 11111111111"}
加工规则:
Text
1e_set("c", mask(v("b"),'[
2 {"mode":"keyword","keys":["wallet","address","sourceIp","phone","transactionHash"], "maskChar":"*","keepPrefix":3,"keepSuffix":3}
3 ]'))
加工结果:
Text
1{"a": "a", "b": "b", "c": "***11111***"}
- 示例2
原始日志:
Text
1{"a": "a", "b": "1.1.1.1"}
加工规则:
Text
1e_set("c", mask(v("b"),'[
2 {"mode":"builtin","types":["IP_ADDRESS","EMAIL","LANDLINE_PHONE"]}
3 ]'))
加工结果:
Text
1{"a": "a", "b": "1.1.1.1", "c": "*******"}
