全部產品
Search
文件中心

Simple Log Service:編碼解碼函數

更新時間:Jul 27, 2024

本文介紹編碼解碼函數的文法規則,包括參數解釋、函數樣本等。

函數列表

類型

子類

函數

說明

編碼與解碼

字串類型

str_encode

對資料進行編碼。

str_decode

對資料進行解碼。

Base64類型

base64_encoding

對資料進行Base64編碼。

base64_decoding

對資料進行Base64解碼。

HTML類型

html_encoding

對資料進行HTML編碼。

html_decoding

對資料進行HTML解碼。

URL類型

url_encoding

對資料進行URL編碼。

url_decoding

對資料進行URL解碼。

Protobuf類型

protobuf_decoding

根據傳入的Protobuf模板將資料解析成JSON格式。

JSON Web Tokens(JWT)標準

jwt_encoding

基於JSON Web Token (JWT)標準,對JSON資料進行編碼。

jwt_decoding

基於JSON Web Token (JWT)標準,將資料解碼為原始JSON。

Hashids庫

hashids_encoding

使用Hashids庫對資料進行編碼。

hashids_decoding

對已使用Hashids庫編碼的資料進行解碼。

壓縮與解壓縮

Gzip壓縮庫

gzip_compress

對資料進行壓縮並編碼。

gzip_decompress

將壓縮資料解壓縮。

Zlib壓縮庫

zlib_compress

對資料進行壓縮並編碼。

zlib_decompress

將壓縮資料解壓縮。

加密與解密

AES類型

aes_encrypt

對資料進行AES加密。

aes_decrypt

對資料進行AES解密。

雜湊摘要

MD5雜湊

md5_encoding

對資料進行MD5編碼。

SHA1雜湊

sha1_encoding

對資料進行SHA1編碼。

迴圈冗餘校正

crc32_encoding

計算資料的迴圈冗餘校正碼。

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 : &lt;img class=&quot;size-medium wp-image-113&quot; style=&quot;margin-left: 15px;&quot; title=&quot;su1&quot; src=&quot;http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;194&quot; /&gt;

html_decoding

對資料進行HTML解碼。

  • 函數格式

    html_decoding(value)
  • 參數說明

    參數名稱

    參數類型

    是否必填

    說明

    value

    String

    被解碼的值。

  • 返回結果

    返回解碼後字串。

  • 函數樣本

    • 原始日誌

      str : &lt;img class=&quot;size-medium wp-image-113&quot; style=&quot;margin-left: 15px;&quot; title=&quot;su1&quot; src=&quot;http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;194&quot; /&gt;
    • 加工規則

      e_set("str_html_de",html_decoding(v("str")))
    • 加工結果

      str : &lt;img class=&quot;size-medium wp-image-113&quot; style=&quot;margin-left: 15px;&quot; title=&quot;su1&quot; src=&quot;http://aliyundoc.com/wp-content/uploads/2008/10/su1-300x194.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;194&quot; /&gt;
      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"
              )
        )
      • 進階參數配置

        建立資料加工任務面板中,設定進階參數配置。此處,設定keyprotocol,設定valuesyntax = "proto3"; message Person { string name = 1; int32 id = 2; string email = 3;} 。具體操作,請參見建立資料加工任務

        protobuf_decoding

      • 加工結果

        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==