本文介绍编码解码函数的语法规则,包括参数解释、函数示例等。
函数列表
类型 | 子类 | 函数 | 说明 |
编码与解码 | 字符串类型 | 对数据进行编码。 | |
对数据进行解码。 | |||
Base64类型 | 对数据进行Base64编码。 | ||
对数据进行Base64解码。 | |||
HTML类型 | 对数据进行HTML编码。 | ||
对数据进行HTML解码。 | |||
URL类型 | 对数据进行URL编码。 | ||
对数据进行URL解码。 | |||
Protobuf类型 | 根据传入的Protobuf模板将数据解析成JSON格式。 | ||
JSON Web Tokens(JWT)标准 | 基于JSON Web Token (JWT)标准,对JSON数据进行编码。 | ||
基于JSON Web Token (JWT)标准,将数据解码为原始JSON。 | |||
Hashids库 | 使用Hashids库对数据进行编码。 | ||
对已使用Hashids库编码的数据进行解码。 | |||
压缩与解压缩 | Gzip压缩库 | 对数据进行压缩并编码。 | |
将压缩数据解压缩。 | |||
Zlib压缩库 | 对数据进行压缩并编码。 | ||
将压缩数据解压缩。 | |||
加密与解密 | AES类型 | 对数据进行AES加密。 | |
对数据进行AES解密。 | |||
哈希摘要 | MD5哈希 | 对数据进行MD5编码。 | |
SHA1哈希 | 对数据进行SHA1编码。 | ||
循环冗余校验 | 计算数据的循环冗余校验码。 |
str_encode
按照指定的编码格式对字符串进行编码。
函数格式
str_encode(value, "utf8", errors="ignore")
参数说明
参数名称
数据类型
是否必填
说明
value
任意(自动转为String)
是
需要被编码的值。
encoding
String
否
编码格式,默认为UTF-8。支持ASCII。
errors
String
否
按照编码格式无法识别字符时的处理方式。取值包括:
ignore(默认值):忽略不做编码。
strict:直接报错,丢弃此条日志数据。
replace:使用半角问号(?)替换无法识别部分。
xmlcharrefreplace:使用对应XML字符替换无法识别部分。
返回结果
返回编码后的字符串。
函数示例
示例1
原始日志
test: asewds
加工规则
e_set("f1", str_decode(str_encode("你好", "utf8"), "utf8"))
加工结果
test: asewds f1: 你好
示例2
原始日志
f2: test 测试数据
加工规则
e_set("f1", str_encode(v("f2"), "ascii", errors="ignore"))
加工结果
f1:test f2:test 测试数据
示例3
原始日志
f2: test 测试数据
加工规则
e_set("f1", str_encode(v("f2"), "ascii", errors="strict"))
加工结果
执行时直接报错。
示例4
原始日志
f2: test 测试数据
加工规则
e_set("f1", str_encode(v("f2"), "ascii", errors="replace"))
加工结果
f1:test ???? f2:test 测试数据
示例5
原始日志
f2: test 测试数据
加工规则
e_set("f1", str_encode(v("f2"), "ascii", errors="xmlcharrefreplace"))
加工结果
f1:test 测试数据 f2:test 测试数据
str_decode
按照指定的编码格式对传入值进行解码。
函数格式
str_decode(value, "utf8", errors="ignore")
说明str_decode只能处理Byte类型的数据。
参数说明
参数名称
数据类型
是否必填
说明
value
任意(自动转为String)
是
需要被解码的值。
encoding
任意(自动转为String)
否
编码格式,默认为UTF-8。 支持ASCII。
errors
任意(自动转为String)
否
按照编码格式无法识别字符时的处理方式。取值包括:
ignore(默认值):忽略不做解码。
strict:直接报错,丢弃此条日志数据。
replace:使用半角问号(?)替换无法编解码部分。
xmlcharrefreplace:使用对应XML字符替换无法编解码部分。
返回结果
返回解码后的值。
函数示例
原始日志
test: asewds
加工规则
e_set("encoding", str_decode(b'\xe4\xbd\xa0\xe5\xa5\xbd', "utf8", 'strict'))
加工结果
test: asewds encoding: 你好
base64_encoding
对数据进行Base64编码。
函数格式
base64_encoding(value, format=None)
参数说明
参数名称
参数类型
是否必填
说明
value
String
是
填入需要被编码的值。
format
String
否
Base64编码协议。默认为
format=RFC3548
,还可以配置为format=RFC4648
。返回结果
返回编码后的字符串。
函数示例
原始日志
str_en : data to be encoded
加工规则
e_set("str_base64",base64_encoding(v("str_en")))
加工结果
str_en : data to be encoded str_base64 : ZGF0YSB0byBiZSBlbmNvZGVk
base64_decoding
对数据进行Base64解码。
函数格式
base64_decoding(value, format=None)
参数说明
参数名称
参数类型
是否必填
说明
value
String
是
被解码的值。
format
String
否
Base64解码协议。默认为
format=RFC3548
,还可以配置为format=RFC4648
。说明RFC4648的Base64解码协议使用等号(=)将被解码的值填充到4字节的倍数。
返回结果
返回解码后的字符串。
函数示例
原始日志
str_de: ZGF0YSB0byBiZSBlbmNvZGVk
加工规则
e_set("str_de_base64",base64_decoding(v("str_de")))
加工结果
str_de: ZGF0YSB0byBiZSBlbmNvZGVk str_de_base64: data to be encoded
html_encoding
对数据进行HTML编码。
函数格式
html_encoding(value)
参数说明
参数名称
参数类型
是否必填
说明
value
String
是
被编码的值。
返回结果
返回编码后字符串。
函数示例
原始日志
str : <img class="size-medium wp-image-113" style="margin-left: 15px;" title="su1" src="http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg" alt="" width="300" height="194" />
加工规则
e_set("str_html_en",html_encoding(v("str")))
加工结果
str : <img class="size-medium wp-image-113" style="margin-left: 15px;" title="su1" src="http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg" alt="" width="300" height="194" /> str_html_en : <img class="size-medium wp-image-113" style="margin-left: 15px;" title="su1" src="http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg" alt="" width="300" height="194" />
html_decoding
对数据进行HTML解码。
函数格式
html_decoding(value)
参数说明
参数名称
参数类型
是否必填
说明
value
String
是
被解码的值。
返回结果
返回解码后字符串。
函数示例
原始日志
str : <img class="size-medium wp-image-113" style="margin-left: 15px;" title="su1" src="http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg" alt="" width="300" height="194" />
加工规则
e_set("str_html_de",html_decoding(v("str")))
加工结果
str : <img class="size-medium wp-image-113" style="margin-left: 15px;" title="su1" src="http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg" alt="" width="300" height="194" /> str_html_de : <img class="size-medium wp-image-113" style="margin-left: 15px;" title="su1" src="http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg" alt="" width="300" height="194" />
url_encoding
对数据进行URL编码。
函数格式
url_encoding(value, plus=False)
参数说明
参数名称
参数类型
是否必填
说明
value
String
是
被编码的值。
plus
Boolean
否
是否将空格转换为加号,默认为False。
True:将空格转换为加号。
False:不转换空格为加号。
返回结果
返回编码后的字符串。
函数示例
示例1:对数据进行URL编码。
原始日志
content : https://www.example.org/hello/asdah
加工规则
e_set("url",url_encoding(v("content")))
加工结果
content : https://www.example.org/hello/asdah url: https%3A%2F%www.example.org%2FHello%2Fasdah
示例2:对数据进行URL编码。其中,未设置plus参数,不转换数据中的空格为加号。
原始日志
content : 1 2+3:4
加工规则
e_set("URL",url_encoding(v("content")))
加工结果
content:1 2+3:4 URL:1%202%2B3%3A4
示例3:对数据进行URL编码。其中,设置plus参数为True,将数据中的空格转换为加号。
原始日志
content : 1 2+3:4
加工规则
e_set("URL", url_encoding(v("content"), plus=True))
加工结果
content:1 2+3:4 URL:1+2%2B3%3A4
url_decoding
对数据进行URL解码。
函数格式
url_decoding(value, plus=False)
参数说明
参数名称
参数类型
是否必填
说明
value
String
是
被解码的值。
plus
Boolean
否
是否将加号转换为空格,默认为False。
True:将加号转换为空格。
False:不转换加号为空格。
返回结果
返回解码后的字符串。
函数示例
示例1:对数据进行URL解码。
原始日志
content : https%3A%2F%www.example.org%2FHello%2Fasdah
加工规则
e_set("URL",url_decoding(v("content")))
加工结果
content : https%3A%2F%www.example.org%2FHello%2Fasdah URL : https://www.example.org/hello/asdah
示例2:对数据进行URL解码。其中,未设置plus参数,不转换数据中的加号为空格。
原始日志
content : /answer?event_date=2022-06-30+09%3A06%3A53%20123
加工规则
e_set("URL",url_decoding(v("content")))
加工结果
content:/answer?event_date=2022-06-30+09%3A06%3A53%20123 URL:/answer?event_date=2022-06-30+09:06:53 123
示例3:对数据进行URL解码。其中,设置plus参数为True,将数据中的加号转换为空格。
原始日志
content : /answer?event_date=2022-06-30+09%3A06%3A53%20123
加工规则
e_set("URL",url_decoding(v("content"),plus=True))
加工结果
content:/answer?event_date=2022-06-30+09%3A06%3A53%20123 URL:/answer?event_date=2022-06-30 09:06:53 123
protobuf_decoding
根据传入的Protobuf模板将数据解析成JSON格式。
函数格式
protobuf_decoding(data, protocol, input_format="bytes", message_name=None)
参数说明
参数名称
参数类型
是否必填
说明
data
String
是
Protobuf序列化数据。
protocol
String
是
Protobuf模板数据。
input_format
String
否
数据类型。
hex:十六进制格式。
bytes:Bytes格式。
raw:Bytes格式。
base64:Base64编码格式。
message_name
String
否
待获取的message名称。
返回结果
未指定message_name时,返回JSON数据列表;指定了message_name时,返回JSON数据对象。
函数示例
示例1:通过模板将base64格式的Protobuf数据解析成JSON格式。
原始日志
{ "protocol": 'syntax = "proto3"; message Person { string name = 1; int32 id = 2; string email = 3;} ', "data": "Cgl4aWFvIG1pbmcQARoOMTIzMTIzQDEyMy5jb20=" }
加工规则
e_set("data", protobuf_decoding(v("data"), v("protocol"), "base64", "Person"))
加工结果
data:{ "name": "xiao ming", "id": 1, "email": "123123@123.com" } protocol:syntax = "proto3"; message Person { string name = 1; int32 id = 2; string email = 3;}
示例2:通过高级参数获取模板,然后将Protobuf数据解析成JSON格式。
原始日志
{ "data": "Cgl4aWFvIG1pbmcQARoOMTIzMTIzQDEyMy5jb20=" }
加工规则
e_set("data", protobuf_decoding( v("data"), res_local("protocol"), "base64", "Person" ) )
高级参数配置
在创建数据加工任务面板中,设置高级参数配置。此处,设置key为
protocol
,设置value为syntax = "proto3"; message Person { string name = 1; int32 id = 2; string email = 3;}
。具体操作,请参见创建数据加工任务。加工结果
data:{ "name": "xiao ming", "id": 1, "email": "123123@123.com" }
示例3:从OSS文件中获取模板,然后将Protobuf数据解析为JSON格式。
原始日志
{ "data": "Cgl4aWFvIG1pbmcQARoOMTIzMTIzQDEyMy5jb20=" }
OSS文件内容
syntax = "proto3"; message Person { string name = 1; int32 id = 2; string email = 3;}
加工规则
e_set( "protocol", res_oss_file( endpoint="http://oss-cn-chengdu.aliyuncs.com", ak_id="your_ak_id", ak_key="your_ak_key", bucket="test-protobuf", file="test.json", ), ) e_set("data", protobuf_decoding(v("data"), v("protocol"), "base64", "Person"))
加工结果
data:{ "name": "xiao ming", "id": 1, "email": "123123@123.com" } protocol:syntax = "proto3"; message Person { string name = 1; int32 id = 2; string email = 3;}
jwt_encoding
基于JSON Web Token(JWT)标准,对JSON数据进行编码。
JSON Web Token(JWT)是一种开放标准(RFC7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为JSON对象安全地传输信息。由于该信息经过数字签名,因此可以对其进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥或私钥对进行签名。更多信息,请参见JWT Introduction。
函数格式
jwt_encoding(payload, key, algorithms="HS256", headers=None)
参数说明
参数名称
参数类型
是否必填
说明
payload
JSON
是
需要进行编码的数据内容,JSON格式。JWT标准定义了以下7个字段,您也可以自定义字段:
iss:issuer,签发人。
exp:expiration time,过期时间。
sub:subject,主题。
aud:audience,受众。
nbf:Not Before,生效时间。
iat:Issued At,签发时间。
jti:JWT ID,编号。
例如原始JSON数据如下所示:
{ "iss": "localhost", "sub": "name", "aud": "user", "address": { "street": "street number", "city": "hangzhou", "country": "china" } }
key
String
是
JWT加密数据使用的密钥,与选定的加密算法相关:
非对称加密算法:PEM格式编码的私钥。
对称加密算法:密钥原文。
algorithms
String
否
对令牌进行签名的算法,默认是HS256。目前支持的算法有:
HS256,HS384,HS512,ES256,ES256K,ES384,ES512,RS256,RS384,RS512,PS256,PS384,PS512,EdDSA
。headers
JSON
否
JWT编码头信息。默认取值为
{ "typ": "JWT", "alg": "HS256" }
。
返回结果
返回编码后的字符串。
函数示例
示例1:对日志字段data的值进行编码。
原始日志
data: {"some": "payload"}
加工规则
e_set("jwt_token", jwt_encoding(v("data"),"secret", algorithms="HS256"))
加工结果
data:{"some": "payload"} jwt_token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCJ9.Joh1R2dYzkRvDkqv3sygm5YyK8Gi4ShZqbhK2gxcs2U
示例2:使用非对称加密算法对日志字段data的值进行编码。
原始日志
data: {"some": "payload"}
加工规则
e_set( "jwt_token", jwt_encoding( v("data"), "-----BEGIN RSA PRIVATE KEY-----\nMIICYQIBAAKBgQC1iaUr5cgShCn0127+w14XN297q/IviaewIeIJsKTZF1hBPsLn\nNIPsnqtQ9DFbjIyqyZvdmQFDJCSLpXaVc648yepnFDKbOfs3r+K4Crnpo2SuZmNV\nNDVEi4pECXlBz810zJY1wqVArM7qGAyCcRLBprwXB6wfEhk3CAP3c29+pwIDAQAB\nAoGAARo65I9arbIbxx7fz7BEDAQMK0YaDGvbltg91S07cw4PPSYybNEG1BMKm01A\nV3v9BrR+u9PIDC5WAnsYwiODqEoSyk8OwO1E2kWA6+MNclYYfVjaJeiRJ5PzCud/\niUObonptRzxuTng+u1oGuX7QwUhwGJdXVBUAtJFYwXR2qVECRQC5S+6vdFESRLSX\n7yBZVM6+49lZcdehMv0HwT17UseLvWcjeSbiogvv02HbYilrW9ZydKsixAWP5w/U\nS3L34CS811VcDQI9APrOiL7c1xg5fX8wAWv2d+e+MfZoB3ohb8671W3pmp3JVnjY\ntzhoYNNQmnmRQQWf7n3J63MQz4sYYNn0gwJEE/pl37Dw1MFnn0H/AOKt79LtKkGl\n+BFhSqbBFDzWmvBu4Fo9oQ3Lr63gzSCGSrb6JhkCIptz5hIJmOARozwdeebVozkC\nPQDwOqVmU3c/P8nB6oRiGditw1Jt1yTaSW6jkOyUc73iRngqFkIgqHGd1kWwDX4/\nWfoAyEhalY6Fh5s1COsCRQCy4b3hnQws5zz/gmGNnoyxn9N+A09ySaFtn2WkUlrR\nZ6DwoJz+n6EgjLY8z6ZQyv342iobO5zKkZHFvO9QYGqk7y8lJA==\n-----END RSA PRIVATE KEY-----\n", algorithms="RS256", ), )
加工结果
data:{"some": "payload"} jwt_token:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCJ9.Ewwls5YPuJCmAR3XR2tcptOLrH83wVCzmUaUpGMzMLcPknRrIvbDmFGlNlQha-PMx0jsxt3t1oxpz7P3z3SR9o4qyWusAb99UG_Jn8oP8W0a5GKSy4UEJB0xgpVvJl5F2JaIPeUSHpV0VeS2WAsGSBBSAaOMkrc-8uie-H4J9M0
示例3:对日志字段data的值进行编码,指定签名算法为HS256,并指定headers。
原始日志
data: {"some": "payload"}
加工规则
e_set( "jwt_token", jwt_encoding( v("data"), "secret", algorithms="HS256", headers={"kid": "230498151c214b788dd97f22b85410a5"}, ), )
加工结果
data:{"some": "payload"} jwt_token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IjIzMDQ5ODE1MWMyMTRiNzg4ZGQ5N2YyMmI4NTQxMGE1In0.eyJzb21lIjoicGF5bG9hZCJ9.gdQ884yjlnLnIrYjfQaClE6rJC2x8v2OP2s_eXOLhZA
示例4:对日志字段data的值指定自定义JWT字段后进行编码。
原始日志
data: {"some": "payload", "iss": 9, "sub": "name", "nbf": 123, "iat": "22"}
加工规则
e_set("jwt_token", jwt_encoding(v("data"),"secret"))
加工结果
data:{"some": "payload", "iss": 9, "sub": "name", "nbf": 123, "iat": "22"} jwt_token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCIsImlzcyI6OSwic3ViIjoibmFtZSIsIm5iZiI6MTIzLCJpYXQiOiIyMiJ9.c6MxZHdXsgASchQ1Mdqj208NO_3rNGjYnvo6c7HNAyk
jwt_decoding
基于JSON Web Token(JWT)标准,将数据解码为原始JSON。
JSON Web Token(JWT)是一种开放标准(RFC7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为JSON对象安全地传输信息。由于该信息经过数字签名,因此可以对其进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥或私钥对进行签名。更多信息,请参见JWT Introduction。
函数格式
jwt_decoding(jwt_payload, key="", algorithms=None, options=None, audience=None, issuer=None, leeway=0)
参数说明
参数名称
参数类型
是否必填
说明
jwt_payload
String
是
被解码的值。
key
String
是
解密数据使用的密钥,应与编码时使用的key保持一致。
algorithms
List
否
对令牌进行签名的算法,例如HS256。
options
JSON
否
扩展解码和验证选项。包括:
verify_signature:是否验证JWT加密签名,默认为True。
require: 编码数据中必须存在的字段,默认为空。例如
["exp", "iat", "nbf"]
。verify_aud:是否检查aud字段,默认为True。
verify_iss:是否检查iss字段,默认为True。
verify_exp:是否检查exp字段,默认为True。
verify_iat:是否检查iat字段,默认为True。
verify_nbf: 是否检查nbf字段,默认为True。
例如
{"require": ["aud"], "verify_aud": True}
。audience
String/List
否
用于检查aud的值。
若编码时设置aud参数且options扩展项中设置
"require": ["aud"]
或者"verify_aud": True
时,解码时必须设置该参数 。issuer
String
否
用于检查iss的值。
若编码时设置iss参数且options扩展项中设置
"require": ["iss"]
或者"verify_iss": True
时,解码时必须设置该参数 。leeway
float
否
到期检查的时间间隔(以秒为单位)。
返回结果
返回解码后的字符串。
函数示例
示例1:对日志字段data的值进行解码,并指定解密的签名算法为HS256。
原始日志
data:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCJ9.Joh1R2dYzkRvDkqv3sygm5YyK8Gi4ShZqbhK2gxcs2U
加工规则
e_set("data_decoded", jwt_decoding(v("data"), "secret", algorithms="HS256"))
加工结果
data_decoded: {"some": "payload"}
示例2:使用公钥对日志字段data的值进行解码。
原始日志
data: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCJ9.Ewwls5YPuJCmAR3XR2tcptOLrH83wVCzmUaUpGMzMLcPknRrIvbDmFGlNlQha-PMx0jsxt3t1oxpz7P3z3SR9o4qyWusAb99UG_Jn8oP8W0a5GKSy4UEJB0xgpVvJl5F2JaIPeUSHpV0VeS2WAsGSBBSAaOMkrc-8uie-H4J9M0"
加工规则
e_set( "data_decoded", jwt_decoding( v("data"), "-----BEGIN RSA PUBLIC KEY-----\nMIGJAoGBALWJpSvlyBKEKfTXbv7DXhc3b3ur8i+Jp7Ah4gmwpNkXWEE+wuc0g+ye\nq1D0MVuMjKrJm92ZAUMkJIuldpVzrjzJ6mcUMps5+zev4rgKuemjZK5mY1U0NUSL\nikQJeUHPzXTMljXCpUCszuoYDIJxEsGmvBcHrB8SGTcIA/dzb36nAgMBAAE=\n-----END RSA PUBLIC KEY-----\n", algorithms="RS256", ), )
加工结果
data_decoded: {"some": "payload"} data:"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCJ9.Ewwls5YPuJCmAR3XR2tcptOLrH83wVCzmUaUpGMzMLcPknRrIvbDmFGlNlQha-PMx0jsxt3t1oxpz7P3z3SR9o4qyWusAb99UG_Jn8oP8W0a5GKSy4UEJB0xgpVvJl5F2JaIPeUSHpV0VeS2WAsGSBBSAaOMkrc-8uie-H4J9M0"
示例3:对日志字段data的值进行解码,默认扩展解码和验证选项。
原始日志
data: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCIsImlzcyI6OSwic3ViIjoibmFtZSIsIm5iZiI6MTIzLCJpYXQiOiIyMiJ9.DzvqhJd0PrTFk6eeASGZxOoDtrLBt_H3xC7CqOATRRw"
加工规则
e_set( "data_decoded", jwt_decoding(v("data"), "secret", algorithms="HS256", options=None) )
加工结果
data_decoded:{ "some": "payload", "iss": 9, "sub": "name", "nbf": 123, "iat": "22" } data:"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCIsImlzcyI6OSwic3ViIjoibmFtZSIsIm5iZiI6MTIzLCJpYXQiOiIyMiJ9.DzvqhJd0PrTFk6eeASGZxOoDtrLBt_H3xC7CqOATRRw"
示例4:对日志字段data的值进行解码,并指定部分扩展解码和验证选项。
原始日志
data: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCIsImlzcyI6Im5hbWUifQ.XwT9jqwofcdSP6olidbiYPC6CnZd36OEqCHZmGmooWM"
加工规则
e_set( "data_decoded", jwt_decoding( v("data"), "secret", algorithms="HS256", options={"require": ["iss"], "verify_iss": True}, issuer="name", ), )
加工结果
data_decoded:{"some": "payload", "iss": "name"} data: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCIsImlzcyI6Im5hbWUifQ.XwT9jqwofcdSP6olidbiYPC6CnZd36OEqCHZmGmooWM"
hashids_encoding
使用Hashids库对数据进行编码。
函数格式
hashids_encoding(value, salt="", min_length=0)
参数说明
参数名称
参数类型
是否必填
说明
value
Number、List、Tuple
是
被编码的值。
当value为数字时,不能小于0。
salt
String
否
为数据添加盐值,默认为空字符串。
min_length
Number
否
生成的哈希值的最小长度,默认为0。
返回结果
返回编码后的字符串。
函数示例
示例1:对数字进行编码,使用默认的盐值和最小哈希长度。
原始日志
content:test
加工规则
e_set("hashid", hashids_encoding(123))
加工结果
content:test hashid:Mj3
示例2:对List类型的数据进行编码,使用自定义的盐值和最小哈希长度。
原始日志
content:test
加工规则
e_set("hashid", hashids_encoding([123, 456], salt="test"))
加工结果
content:test hashid:bpBHYO
示例3:对List类型的数据进行编码,使用自定义的盐值和最小哈希长度。
原始日志
content:test
加工规则
e_set("hashid", hashids_encoding([123, 456], salt="test", min_length=32))
加工结果
content:test hashid:O6jN0Z7VARqDzbpBHYOakeowE5Xnr41g
示例4:对Tuple类型的数据进行编码,使用自定义的盐值和最小哈希长度。
原始日志
content:test
加工规则
e_set("hashid", hashids_encoding((123, 456), salt="test", min_length=32))
加工结果
content:test hashid:O6jN0Z7VARqDzbpBHYOakeowE5Xnr41g
hashids_decoding
对已使用Hashids库编码的数据进行解码。
函数格式
hashids_decoding(hashid, salt="", min_length=0)
参数说明
参数名称
参数类型
是否必填
说明
hashid
String
是
需要被解码的数据。
salt
String
否
为数据添加盐值,默认为空字符串。
min_length
Number
否
生成的哈希值的最小长度,默认为0。
返回结果
返回解码后的字符串。
函数示例
示例1:对已编码的数字进行解码,使用默认的盐值和最小哈希长度。
原始日志
content:Mj3
加工规则
e_set("value", hashids_decoding(v("content")))
加工结果
content:Mj3 value:[123]
示例2:对已编码的List类型的数据进行解码,使用自定义的盐值和默认的最小哈希长度。
原始日志
content:bpBHYO
加工规则
e_set("value", hashids_decoding(v("content"), salt="test"))
加工结果
content:bpBHYO value:[123, 456]
示例3:对已编码的List类型的数据进行解码,使用自定义的盐值和最小哈希长度。
原始日志
content:O6jN0Z7VARqDzbpBHYOakeowE5Xnr41g
加工规则
e_set("value", hashids_decoding(v("content"), salt="test", min_length=32))
加工结果
content:O6jN0Z7VARqDzbpBHYOakeowE5Xnr41g value:[123, 456]
示例4:对已编码的Tuple类型的数据进行解码,使用自定义的盐值和最小哈希长度。
原始日志
content:O6jN0Z7VARqDzbpBHYOakeowE5Xnr41g
加工规则
e_set("value", hashids_decoding(v("content"), salt="test", min_length=32))
加工结果
content:O6jN0Z7VARqDzbpBHYOakeowE5Xnr41g value:[123, 456]
gzip_compress
将数据进行压缩并编码。
函数格式
gzip_compress(data, compresslevel=6, to_format="base64", encoding="utf-8")
参数说明
参数名称
参数类型
是否必填
说明
data
String
是
输入需要压缩的数据。
compresslevel
Int
否
用于控制压缩等级,可配置为0~9的整数。默认值为6。
1:压缩速度最快但压缩比例最小。
9:压缩速度最慢但压缩比例最大。
0:不压缩。
to_format
String
否
对压缩后的数据进行编码的格式,目前支持进行Base64和hex编码。
encoding
String
否
原始未压缩数据的编码格式,默认为utf-8,其他编码格式请参见标准编码格式。
返回结果
返回编码后的字符串。
函数示例
示例1:对日志字段进行压缩并Base64编码。
原始日志
content: I always look forward to my holidays whether I travel or stay at home.
加工规则
e_set("base64_encode_gzip_compress",gzip_compress(v("content"),to_format="base64"))
加工结果
content: I always look forward to my holidays whether I travel or stay at home. base64_encode_gzip_compress: H4sIAA8JXl4C/xXK0QmAMAwFwFXeBO7RMQKNREx5kAZDtle/7wbES3rDyRsnoyQmklgNo1/ztzJN08BAhjzqYGCnNCS/tPR4AcgrnWVGAAAA
示例2:对日志字段进行hex编码。
原始日志
content: H4sIAA8JXl4C/xXK0QmAMAwFwFXeBO7RMQKNREx5kAZDtle/7wbES3rDyRsnoyQmklgNo1/ztzJN08BAhjzqYGCnNCS/tPR4AcgrnWVGAAAA
加工规则
e_set("hex_encode_gzip_compress", gzip_compress(v("content"), to_format="hex"))
加工结果
content:H4sIAA8JXl4C/xXK0QmAMAwFwFXeBO7RMQKNREx5kAZDtle/7wbES3rDyRsnoyQmklgNo1/ztzJN08BAhjzqYGCnNCS/tPR4AcgrnWVGAAAA hex_encode_gzip_compress:1f8b08004a478c6202ff0dc1dd0e43301800d047aa65156e3ff52f4a2ba17649c43255194d4a9f9e73527c64007e2e2426e81485c35628c1c42616535079bc6405e5d1e92ef009b59c906786a879efe1c50fb55d6c5de44cb717b2dae6d4f103f8feecbf4f88a2a441bae618c679575d9bc0e306907876806c000000
gzip_decompress
将压缩数据解压缩。
函数格式
gzip_decompress(data, from_format="base64", encoding="utf-8")
参数说明
参数名称
参数类型
是否必填
说明
data
任意
是
输入需要解压的数据。
from_format
String
否
解压数据的编码格式,目前支持Base64和hex格式解码。
encoding
String
否
原始未压缩数据的编码格式,默认utf-8,其他编码格式请参见标准编码格式。
返回结果
返回解压后的对象。
函数示例
示例1:对日志字段进行Base64解码。
原始日志
content: H4sIAA8JXl4C/xXK0QmAMAwFwFXeBO7RMQKNREx5kAZDtle/7wbES3rDyRsnoyQmklgNo1/ztzJN08BAhjzqYGCnNCS/tPR4AcgrnWVGAAAA
加工规则
e_set("gzip_decompress",gzip_decompress(v("content"),from_format="base64"))
加工结果
content: H4sIAA8JXl4C/xXK0QmAMAwFwFXeBO7RMQKNREx5kAZDtle/7wbES3rDyRsnoyQmklgNo1/ztzJN08BAhjzqYGCnNCS/tPR4AcgrnWVGAAAA gzip_decompress: I always look forward to my holidays whether I travel or stay at home.
示例2:对日志字段进行hex解码。
原始日志
content:1f8b0800bff8856202ff0dc1dd0e43301800d047aa65156e3ff52f4a2ba17649c43255194d4a9f9e73527c64007e2e2426e81485c35628c1c42616535079bc6405e5d1e92ef009b59c906786a879efe1c50fb55d6c5de44cb717b2dae6d4f103f8feecbf4f88a2a441bae618c679575d9bc0e306907876806c000000
加工规则
e_set("gzip_decompress", gzip_decompress(v("content"), from_format="hex"))
加工结果
content:1f8b0800bff8856202ff0dc1dd0e43301800d047aa65156e3ff52f4a2ba17649c43255194d4a9f9e73527c64007e2e2426e81485c35628c1c42616535079bc6405e5d1e92ef009b59c906786a879efe1c50fb55d6c5de44cb717b2dae6d4f103f8feecbf4f88a2a441bae618c679575d9bc0e306907876806c000000 gzip_decompress:H4sIAA8JXl4C/xXK0QmAMAwFwFXeBO7RMQKNREx5kAZDtle/7wbES3rDyRsnoyQmklgNo1/ztzJN08BAhjzqYGCnNCS/tPR4AcgrnWVGAAAA
zlib_compress
将数据进行压缩并编码。
函数格式
zlib_compress(data, compresslevel=6, to_format="base64", encoding="utf-8")
参数说明
参数名称
参数类型
是否必填
说明
data
String
是
输入需要压缩的数据。
compresslevel
Int
否
用于控制压缩等级,可配置为0~9的整数。默认值为6。
1:压缩速度最快但压缩比例最小。
9:压缩速度最慢但压缩比例最大。
0:不压缩。
to_format
String
否
对压缩后的数据进行编码的格式,目前只支持进行Base64编码。
encoding
String
否
原始未压缩数据的编码格式,默认为utf-8,其他编码格式请参见标准编码格式。
返回结果
返回编码后的对象。
函数示例
原始日志
content: I always look forward to my holidays whether I travel or stay at home.
加工规则
e_set("zlib_compress", zlib_compress(v("content"), to_format="base64"))
加工结果
zlib_compress: "eJwVytEJgDAMBcBV3gTu0TECjURMeZAGQ7ZXv+8GxEt6w8kbJ6MkJpJYDaNf87cyTdPAQIY86mBgpzQkv7T0eAGNshln" content: "I always look forward to my holidays whether I travel or stay at home."
zlib_decompress
将压缩数据解压缩。
函数格式
zlib_decompress(data, from_format="base64", encoding="utf-8")
参数说明
参数名称
参数类型
是否必填
说明
data
String
是
输入需要解压的数据。
from_format
String
否
解压数据的编码格式,目前只支持Base64编码。
encoding
String
否
编码格式,默认utf-8,其他编码格式请参见标准编码格式。
返回结果
返回解压后的对象。
函数示例
原始日志
content: "eJwVytEJgDAMBcBV3gTu0TECjURMeZAGQ7ZXv+8GxEt6w8kbJ6MkJpJYDaNf87cyTdPAQIY86mBgpzQkv7T0eAGNshln"
加工规则
e_set("zlib_decompress", zlib_decompress(v("content"), from_format="base64"))
加工结果
content: "eJwVytEJgDAMBcBV3gTu0TECjURMeZAGQ7ZXv+8GxEt6w8kbJ6MkJpJYDaNf87cyTdPAQIY86mBgpzQkv7T0eAGNshln" zlib_decompress: "I always look forward to my holidays whether I travel or stay at home."
aes_encrypt
对数据进行AES加密。高级加密标准AES(Advanced Encryption Standard)为最常见的对称加密算法。对数据进行AES加密,能有效提升数据安全性。
函数格式
aes_encrypt(data, key, mode, pad_style, pad_block, input_format, input_encoding, output_format, iv)
参数说明
参数名称
参数类型
是否必填
说明
data
String
是
需要被加密的数据。
key
String
是
加密数据使用的密钥。
mode
String
否
AES加密模式。
CBC(默认值):Cipher Block Chaining
ECB:Electronic Code Book
CFB:Cipher FeedBack
OFB:Output FeedBack
CTR:Counter
OPENPGP
pad_style
String
否
填充模式。默认为pkcs7。可取值为iso7816、x923和pkcs7。
input_format
String
否
输入字符格式。默认为raw。可取值包括:
raw:Bytes格式
hex:十六进制格式
base64:Base64编码格式
input_encoding
String
否
仅当input_format取值为raw时需要配置。配置字符编码格式。默认为utf-8。
output_format
String
否
输出字符格式。默认为hex。可取值包括:
raw:Bytes格式
hex:十六进制格式
base64:Base64编码格式
iv
Bytes
否
加密使用偏移量。
返回结果
返回加密后的字符串。
函数示例
示例1
原始日志
"test": "aliyuntest"
加工规则
e_set('result',aes_encrypt(v("test"), "qwertyuiopasdfgd", iv=b"xxywosjdapdiawdk", output_format="base64"))
加工结果
"result":"gXIqu0cBBtZHQxJBK8GLeA=="
示例2
原始日志
"test": "aliyuntest"
加工规则
e_set('result',aes_encrypt(v("test"), "qwertyuiopasdfgh", iv=b"ywisnjaduaqibdqi", mode="OFB"))
加工结果
"result": "5cac3e9e1c42f713dc6d"
aes_decrypt
对已加密数据进行AES解密。
函数格式
aes_decrypt(data, key, mode, pad_style, input_format, input_encoding, output_format, iv, output_encoding)
参数说明
参数名称
参数类型
是否必填
说明
data
String
是
需要被解密的数据。
key
String
是
解密数据使用的密钥。
mode
String
否
AES解密模式。
CBC(默认值):Cipher Block Chaining
ECB:Electronic Codebook Book
CFB:Cipher FeedBack
OFB:Output FeedBack
CTR:Counter
OPENPGP
pad_style
String
否
填充模式。默认为pkcs7。可取值为iso7816、x923和pkcs7。
input_format
String
否
输入字符格式。默认为hex。可取值包括:
raw:Bytes格式
hex:十六进制格式
base64:Base64编码格式
input_encoding
String
否
仅当input_format取值为raw时需要配置。配置字符编码格式。默认为utf-8。
output_format
String
否
输出字符格式。默认为raw。可取值包括:
raw:Bytes格式
hex:十六进制格式
base64:Base64编码格式
iv
Bytes
否
解密使用偏移量。
output_encoding
String
否
配置输出字符编码格式。默认为None。
返回结果
返回解密后的字符串。
函数示例
示例1
原始日志
"test": "gXIqu0cBBtZHQxJBK8GLeA=="
加工规则
e_set('result', aes_decrypt(v("test"), "qwertyuiopasdfgd", iv=b"xxywosjdapdiawdk", input_format="base64"))
加工结果
"result": "aliyuntest"
示例2
原始日志
"test": "5cac3e9e1c42f713dc6d"
加工规则
e_set('result', aes_decrypt(v("test"), "qwertyuiopasdfgh", iv=b"ywisnjaduaqibdqi", mode="OFB"))
加工结果
"result": "aliyuntest"
md5_encoding
对数据进行MD5编码。
函数格式
md5_encoding(value, format="hex")
参数说明
参数名称
参数类型
是否必填
说明
value
String
是
被编码的值。
format
String
否
默认值为hex,可选值:binary、hex。
返回结果
返回编码后的字符串。
函数示例
示例1
原始日志
str : GeeksforGeeks
加工规则
e_set("str_md5_en",md5_encoding(v("str")))
加工结果
str : GeeksforGeeks str_md5_en : f1e069787ece74531d112559945c6871
示例2
原始日志
str : GeeksforGeeks
加工规则
e_set("str_md5_en",base64_encoding(md5_encoding(v("str"), format="binary")))
加工结果
str : GeeksforGeeks str_md5_en : 8eBpeH7OdFMdESVZlFxocQ==
sha1_encoding
对数据进行SHA-1编码。
函数格式
sha1_encoding(value, format=None)
参数说明
参数名称
参数类型
是否必填
说明
value
String
是
被编码的值。
format
String
否
编码类型,默认为SHA1类型,可选SHA256、SHA384、SHA224、SHA512类型。
返回结果
返回编码后的字符串。
函数示例
原始日志
str : GeeksforGeeks
加工规则
e_set("str_sha1",sha1_encoding(v("str"))) e_set("str_sha512",sha1_encoding(v("str"),format='SHA512')) e_set("str_sha224",sha1_encoding(v("str"),format='SHA224')) e_set("str_sha384",sha1_encoding(v("str"),format='SHA384')) e_set("str_sha256",sha1_encoding(v("str"),format='SHA256'))
加工结果
str : GeeksforGeeks str_sha1 : 4175a37afd561152fb60c305d4fa6026b7e79856 str_sha512 : 0d8fb9370a5bf7b892be4865cdf8b658a82209624e33ed71cae353b0df254a75db63d1baa35ad99f26f1b399c31f3c666a7fc67ecef3bdcdb7d60e8ada90b722 str_sha224 : 173994f309f727ca939bb185086cd7b36e66141c9e52ba0bdcfd145d str_sha384 : d1e67b8819b009ec7929933b6fc1928dd64b5df31bcde6381b9d3f90488d253240490460c0a5a1a873da8236c12ef9b3 str_sha256 : f6071725e7ddeb434fb6b32b8ec4a2b14dd7db0d785347b2fb48f9975126178f
crc32_encoding
计算数据的循环冗余校验码。
函数格式
crc32_encoding(data, input_format="raw", input_encoding="utf-8")
参数说明
参数名称
参数类型
是否必填
说明
data
String
是
计算校验码的值。
input_format
String
否
输入值的字符格式。默认为raw,可选值包括:
raw:Bytes格式
hex:十六进制格式
base64:Base64编码格式
input_encoding
String
否
仅当input_format取值为raw时需要配置。配置字符编码格式。默认为utf-8。
返回结果
返回传入数据的循环冗余校验码。
函数示例
示例1:计算字段test的循环冗余校验码。
原始日志
test: aliyuntest
加工规则
e_set("str_crc32", crc32_encoding(v("test")))
加工结果
str_crc32:1434103726 test:aliyuntest
示例2:将字段test1和test2连接后进行MD5编码,最后计算其循环冗余校验码。
原始日志
test1: test1 test2: test2
加工规则
e_set( "str_crc32", crc32_encoding( md5_encoding(str_join("+", v("test1"), v("test2")), format="binary") ), )
加工结果
str_crc32:369733261 test1:test1 test2:test2
示例3:计算字段test的循环冗余校验码,其值为Base64编码格式。
原始日志
test: Taloz+e+PzP3NltrEXiCig==
加工规则
e_set("str_crc32", crc32_encoding(v("test"), input_format="base64"))
加工结果
str_crc32:1093789404 test:Taloz+e+PzP3NltrEXiCig==