例如 n=1,m=2,浙江省杭州市西湖区胡同口 → 浙***同口
本文介绍 ArgoDB 支持的脱敏函数,在使用脱敏函数前,您需要联系星环科技获取最新的函数软件包,随后将其导入至 ArgoDB 中,您也可以与 Transwarp Defensor 产品联合使用,可免去导入脱敏函数的操作,同时可为您提供界面化能力,简化配置流程并扩展分类分级等更多能力。
Transwarp Defensor 是星环科技自主研发的数据安全管理平台,结合星环大数据平台的安全能力,帮助您对敏感数据进行分类分级,并在此基础上,监控敏感数据的使用,能对违规操作,异常行为进行识别与告警。 |
规整
函数语法 | 描述 | 示例说明 |
---|---|---|
regular(int value,int f1,int f2[,int f3,int f4]) |
区间规整,将数据分成不同的级别,支持三级、五级,输入两个参数分为三级(高/中/低),输入四个参数为五级(一级/…/五级),分级的参数只支持整型 |
regular(22,10,30)→中 22为中级 regular(22,10,20,30,40)→三级 22为三级 |
取整
函数语法 | 描述 | 示例说明 |
---|---|---|
number_floor(int num,int place) |
数字按位取整,num 表示待取整的数字,place 表示取整的位数 |
number_floor(123456,3)→123000 |
date_floor(Date date[TimeStamp timeNum],range) |
日期取整,支持输入的日期格式为 Date 或 TimeStamp,range 表示取整的粒度,可选择以下关键字:year/month/day/hour/minute/second |
date_floor('2021-08-16','year')→2021-01-01 |
截断
函数语法 | 描述 | 示例说明 |
---|---|---|
block_front(string data[,char a]) |
对首次出现的特殊符号前的内容进行截断,data 为待处理的字符串,默认特殊字符"@",可自定义符号 |
123@163.com→@com |
block_back(string data[,char a]) |
对首次出现的特殊符号后的内容进行截断,data 为待处理的字符串,默认特殊字符"@",可自定义符号 |
123@345@163.com→123@ |
keep_front(string data,int M) |
保留前 M 位,其余截断,输入待处理字符串 data 及保留位数 M |
例如M=3,021-1234567→021 |
keep_back(string data,int N) |
保留后 N 位,其余截断,输入待处理字符串 data 及保留位数 N |
例如M=3,021-1234567→567 |
字符位移
函数语法 | 描述 | 示例说明 |
---|---|---|
shiftleft(int a,int b) |
将整型数字 a 向左位移 b 位,a 表示待处理的数字,b 表示移动的位数 |
例如 a=2,b=1,2 转换成二进制为 0010,向左移动一位为 0100=4 |
shiftright(int a,int b) |
将整型数字 a 向右位移 b 位,a 表示待处理的数字,b 表示移动的位数 |
例如 a=4,b=1,2 转换成二进制为 0100,向右移动一位为 0010=2 |
shiftrightunsigned(int a,int b) |
按位无符号右移,a 表示待处理的数字,b 表示移动的位数 |
例如a=4,b=1,2转换成二进制为0100,向右移动一位为0010=2 |
掩码屏蔽(不指定掩码长度)
函数语法 | 描述 | 示例说明 |
---|---|---|
mask(data_string[, mask_string], pre_length[, post_length]) |
保留前 n 后 m 位内容,遮盖字符默认为星号(*) |
|
keep_from(string data,int x,int y) |
保留自 x 至 y 位的内容,遮盖字符默认为星号(*) |
例如 x=1,y=2,浙江省杭州市西湖区胡同口 → |
cover(String data,int n,int m[char a]) |
遮盖前 n 后 m 位的内容,遮盖字符默认为星号(*) |
例如 n=1,m=2,浙江省杭州市西湖区胡同口→江省杭州市西湖区胡* |
mask_from(string data,int x,int y) |
遮盖自 x 至 y 位的内容,遮盖字符默认为星号(*) |
例如 x=1,y=2,浙江省杭州市西湖区胡同口 → |
mask_front(string data[,char a]) |
以首次出现的特殊字符为界,遮盖其前面的内容,可自定义特殊字符 a(默认为 |
例如 123@456@163.com → |
mask_back(string data[,char a]) |
以首次出现的特殊字符为界,遮盖其后面的内容,可自定义特殊字符 a(默认为 |
例如 123@456@163.com → |
mask_specify(string data,int front,int back,int middle[,char a]) |
保留前 n 后 m 位的内容,遮盖字符默认为星号(*),遮盖字符长度 L |
例如 n=1,m=2,L=3,浙江省杭州市西湖区胡同口→ |
掩码屏蔽(指定掩码长度)
函数语法 | 描述 | 示例说明 |
---|---|---|
keep_from_sl(string data,int x,int y,int l[,char a]) |
保留自x至y,遮盖字符(默认为*),遮盖字符长度L |
例如x=2,y=3,L=3,浙江省杭州市西湖区胡同口 → |
cover_sl(string data,int n,int m,int l[,char a]) |
遮盖前n后m,遮盖字符(默认为*),遮盖字符长度L |
例如n=1,m=2,L=3,浙江省杭州市西湖区胡同口 → |
mask_from_sl(string data,int x,int y,int l[,char a]) |
遮盖自x至y,遮盖字符(默认为*),遮盖字符长度L |
例如x=2,y=3,L=3,浙江省杭州市西湖区胡同口 → |
mask_front_sl(string data,int l[,char a]) |
以首次出现的特殊字符为界,遮盖其前面的内容,自定义特殊字符a(默认为 |
例如特殊符号“@”,L=2,123@456@163.com → |
mask_back_sl(string data,int l[,char a]) |
以首次出现的特殊字符为界,遮盖其后面的内容,自定义特殊字符a(默认为 |
例如特殊符号“@”,L=2,123@456@163.com → |
Base64 编码
函数语法 | 描述 | 示例说明 |
---|---|---|
base64(bin) |
base64编码,将参数从二进制转换为 base 64 字符串 |
12 |
对称加密
函数语法 | 描述 | 示例说明 |
---|---|---|
des_encrypt(string value,string key) |
DES 算法加密,传入待加密内容以及加密密钥(56 位) |
输出加密后的字符串 |
des_decrypt(string buff,string key) |
DES 算法解密,传入密文以及密钥以及加密密钥key(56位) |
输出解密后的明文内容 |
triple_des_encrypt(string value,string key) |
3DES 算法加密,传入待加密内容以及加密密钥(168位) |
输出加密后的字符串(经过Base64编码) |
triple_des_decrypt(string value,string key) |
3DES 算法解密,传入密文以及加密密钥key(168位) |
输出解密后的明文内容 |
aes_encrypt(input string/binary, key string/binary) |
AES 算法加密,传入待加密数据(字符串/二进制)以及加密密钥 |
输出 aes 加密后的字符串 |
aes_decrypt(input binary, key string/binary) |
AES算法解密,传入二进制密文以及密钥 |
输出解密后的明文内容 |
caesar_cipher(data_string[, shift_value]) |
凯撒加密,传入待加密数据以及偏移量 |
caesar_cipher('012ABC6789', 1) → 123BCD7890 |
sm4_encrypt(string data,string key) |
国密 SM4,传入待加密数据以及密钥 key(128位) |
输出加密后的字符串(经过Hex编码) |
sm4_decrypt(string data,string key) |
国密 SM4,传入经过 SM4 加密的密文以及密钥(128位) |
输出解密后的明文内容 |
常量替换
函数语法 | 描述 | 示例说明 |
---|---|---|
hide(int data,int m) |
常量替换,支持 int、string 和 double 类型数据替换 |
hello → hi |
replace(string str,string search,string rep) |
关键字替换,将字符串 str 中的 search 部分替换成 rep |
原始数据为 abcdefgbcdefgkjkoij,“关键字”配置为“bcde”,“替换字符串”配置为12,则“脱敏结果”显示为 a12fg12fgkjkoij |
Hash 脱敏
函数语法 | 描述 | 示例说明 |
---|---|---|
md5(string) |
哈希脱敏-MD5,传入待处理的字符串 |
md5("a") |
sha1(str or bin) |
哈希脱敏-SHA1,传入待处理的字符串 |
sha1('ABC') |
sha2(string/binary, len) |
哈希脱敏-SHA2,len 表示加密位数,可以选择 256 或 512 |
sha2('ABC', 256) |
sm3(string data[byte[] data]) |
国密哈希 SM3,data 表示待处理的数据,支持 string 和 byte[] 类型 |
sm3('hello world') |
hmac(string data,string key) |
HMAC 哈希算法,data 表示待处理的数据,key 表示用于认证密钥,同时支持 string 和 byte[]类型 |
hmac('hello world','R/EF98s2xof7m16m+3b4n/0DDZbbTlDERdedJqfhP94=') |
随机替换
函数语法 | 描述 | 示例说明 |
---|---|---|
random_str(int L) |
生成指定长度 L 的随机字符串替换原字段 |
例如 L=5,alice → Wzf_v |
random(x,y,[seed]) |
返回一个介于 x 和 y 之间的伪随机数替换原字段,x、y 分别表示随机数的上下限 |
random(10,50)→39 |
sequence(int number) |
随机生成一个序列替换原整数类型的数据,该序列前两位是字符,后两位是数字,number 表示待替换的整型数字 |
23 → QY96 |
blur(double data) |
随机生成一个 double 类型的数字替换原 double 类型数字 |
234→199.17 |
character_scrambling(string data) |
将 String 类型的字段英文字母打乱 |
hello world → Hwoel lrdlo |
phone_confusion(string number) |
保持座机号码区号不变的情况下,对其余部分进行混淆 |
0571-123456→0571-678409 |