联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >
6.8.11.17 脱敏函数
更新时间:7/16/2024, 8:54:05 AM

Inceptor 提供多种脱敏函数,可用于列级权限控制场景,帮助您更好地管控信息安全。

mask
函数语法 返回类型 描述

mask(expr [, mask_str], pre_len[, post_len])

STRING

使用脱敏字符来替代原文内容,可指定原文要保留的前后长度。可用于隐藏电话号码、身份证等场景。

参数说明

  • expr:指定要脱敏的表达式。

  • mask_str(可选):指定用来替换的字符串,默认通过星号(*)来实现脱敏效果。

  • pre_len:原字符串要保留的头部长度(正整数)。

  • post_len(可选):原字符串要保留的尾部长度(正整数),默认为 0。

  • 当 expr、mask_str 的值为 NULL/空串,则返回 NULL。

  • 当 pre_len、post_len 的值为负数时,会作为 0 处理。

  • 当 pre_len 与 post_len 之和大于等于要脱敏的内容长度时,则不做任何脱敏处理,直接返回原文。

使用示例:

SELECT mask('13012345678', '*', 3, 4) AS result
FROM system.dual LIMIT 1;
复制

返回示例:

+--------------+
|    result    |
+--------------+
| 130****5678  |
+--------------+
复制
mask_email
函数语法 返回类型 描述

mask_email(expr [, mask_str, pre_len, post_len])

STRING

使用脱敏字符来替代邮箱地址 @ 符号前的字符,邮箱地址中的域名不受影响,可指定原文要保留的前后长度。

参数说明

  • expr:指定要脱敏的表达式。

  • mask_str(可选):指定用来替换的字符串,默认通过星号(*)来实现脱敏效果。

  • pre_len(可选):原字符串要保留的头部长度(正整数),默认为 1。

  • post_len(可选):原字符串要保留的尾部长度(正整数),默认为 0。

  • 当 expr、mask_str 的值为 NULL/空串,则返回 NULL。

  • 当 pre_len、post_len 的值为负数时,会作为 0 处理。

  • 当 pre_len 与 post_len 之和大于等于要脱敏的内容长度时,则不做任何脱敏处理,直接返回原文。

使用示例:

SELECT mask_email('address@transwarop.io', '*', 2, 1) AS result
FROM system.dual LIMIT 1;
复制

返回示例:

+------------------------+
|         result         |
+------------------------+
| ad****s@transwarop.io  |
+------------------------+
复制
mask_company
函数语法 返回类型 描述

mask_company(expr[, mask_str])

STRING

使用脱敏字符来替代原文内容,只保留“有限公司”及其之后的字符,可用于隐藏公司名称的场景。

参数说明

  • expr:指定要脱敏的表达式。

  • mask_str(可选):指定用来替换的字符串,默认通过星号(*)来实现脱敏效果。

  • 当 expr、mask_str 的值为 NULL/空串,则返回 NULL。

  • 当 expr 的值不包含“有限公司”时,则会将原文全部脱敏。

使用示例:

SELECT mask_company('测试有限公司') AS result
FROM system.dual LIMIT 1;
复制

返回示例:

+-------------+
|    result   |
+-------------+
| ****  |
+-------------+
复制
caesar_cipher
函数语法 返回类型 描述

caesar_cipher(expr[, shift_val])

STRING

通过 Caesar cipher 方法加密表达式中的数字和英文字母,即通过制定偏移量来实现加密,例如偏移量为 1,会将 11aa 转换为 22bb。

参数说明

  • expr:指定要加密的表达式。

  • shift_val:指定加密所使用的偏移量,默认为 3。

使用示例:

SELECT caesar_cipher('012hello测试') AS result
FROM system.dual LIMIT 1;
复制

返回示例:

+--------------+
|    result    |
+--------------+
| 345khoor  |
+--------------+
复制