Este tema describe la sintaxis de las funciones binarias y proporciona ejemplos.
Simple Log Service admite las siguientes funciones binarias.
En una instrucción de consulta de Simple Log Service, las cadenas deben ir entre comillas simples ('). Los literales sin comillas o los literales entre comillas dobles (") representan nombres de campos o columnas. Por ejemplo, 'status' es la cadena 'status', mientras que status o "status" hace referencia al campo de registro status.
varbinary es un tipo de carácter binario y varchar es un tipo de carácter de longitud variable.
|
Función |
Sintaxis |
Descripción |
Compatibilidad con SQL |
Compatibilidad con SPL |
|
from_base64(x) |
Decodifica una cadena codificada en Base64 a datos binarios. |
√ |
√ |
|
|
from_base64url(x) |
Decodifica una cadena Base64 segura para URL a datos binarios. |
√ |
× |
|
|
from_big_endian_64(x) |
Decodifica un bigint a partir de su representación binaria big-endian. |
√ |
× |
|
|
from_hex(x) |
Convierte una cadena hexadecimal a datos binarios. |
√ |
√ |
|
|
length(x) |
Devuelve la longitud de los datos varbinary en bytes o el número de caracteres en una cadena varchar. |
√ |
× |
|
|
md5(x) |
Calcula el hash MD5 de datos binarios. |
√ |
√ |
|
|
to_base64(x) |
Codifica datos binarios en una cadena codificada en Base64. |
√ |
√ |
|
|
to_base64url(x) |
Codifica datos binarios en una cadena Base64 segura para URL. |
√ |
× |
|
|
to_hex(x) |
Convierte datos binarios en una cadena hexadecimal. |
√ |
√ |
|
|
to_big_endian_64(x) |
Codifica un bigint en su representación binaria big-endian. |
√ |
× |
|
|
sha1(x) |
Calcula el hash SHA-1 de datos binarios. |
√ |
√ |
|
|
sha256(x) |
Calcula el hash SHA-256 de datos binarios. |
√ |
√ |
|
|
sha512(x) |
Calcula el hash SHA-512 de datos binarios. |
√ |
√ |
|
|
xxhash64(x) |
Calcula el hash xxHash64 de datos binarios. |
√ |
√ |
|
|
aes_encrypt(data, key, iv, mode, pad_style) |
Cifra datos binarios mediante cifrado AES. |
√ |
√ |
|
|
aes_decrypt(data, key, iv, mode, pad_style) |
Descifra datos binarios cifrados con AES. |
√ |
√ |
Función from_base64
La función from_base64 decodifica una cadena codificada en Base64 a datos binarios.
Syntax
from_base64(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una cadena varchar. Esta cadena debe estar codificada en Base64. |
Return value type
varbinary
El tipo varbinary puede contener caracteres invisibles. La consola de Simple Log Service muestra el resultado en formato Base64.
Para consultar un valor devuelto con caracteres invisibles, utilice la función to_hex para convertirlo a una cadena hexadecimal.
Si un valor devuelto contiene solo caracteres visibles, utilice la función from_utf8 para convertirlo a una cadena UTF-8.
Examples
Decodifique una cadena codificada en Base64 a datos binarios y luego convierta los datos binarios a una cadena hexadecimal.
-
Instrucción de consulta
* | SELECT to_hex(from_base64('c2xz')) Resultados de la consulta: El valor de la columna _col0 es
736C73.
Función from_base64url
La función from_base64url decodifica una cadena Base64 segura para URL a datos binarios.
Syntax
from_base64url(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una cadena varchar. Esta cadena debe ser una cadena codificada en Base64 y segura para URL. |
Return value type
varbinary
El tipo varbinary puede contener caracteres invisibles. La consola de Simple Log Service muestra el resultado en formato Base64.
Para consultar un valor devuelto con caracteres invisibles, utilice la función to_hex para convertirlo a una cadena hexadecimal.
Si un valor devuelto contiene solo caracteres visibles, utilice la función from_utf8 para convertirlo a una cadena UTF-8.
Examples
Decodifique una cadena Base64 segura para URL a datos binarios.
-
Instrucción de consulta
* | SELECT to_hex(from_base64url('c2xz')) Resultados de la consulta: El valor de la columna _col0 es
736C73.
Función from_big_endian_64
La función from_big_endian_64 decodifica un bigint a partir de su representación binaria big-endian.
Syntax
from_big_endian_64(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
bigint
Examples
Convierta la representación binaria big-endian del número 10 nuevamente a un número.
-
Instrucción de consulta
* | SELECT from_big_endian_64(to_big_endian_64(10)) El resultado es
10.
Función from_hex
La función from_hex convierte una cadena hexadecimal a datos binarios.
Syntax
from_hex(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una cadena varchar hexadecimal. |
Return value type
varbinary
Examples
Convierta la cadena hexadecimal 'D74D' a datos binarios.
-
Instrucción de consulta
* | SELECT from_hex('D74D') Resultados de la consulta: El valor de la columna
_col0es100=.
Función length
La función length devuelve la longitud de los datos varbinary en bytes o el número de caracteres en una cadena varchar.
Syntax
length(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary o varchar. |
Return value type
bigint
Examples
Calcule la longitud de la cadena '00101000'.
-
Instrucción de consulta
* | SELECT length('00101000') El resultado es
8.
Función md5
La función md5 calcula el hash MD5 de datos binarios.
Syntax
md5(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
varbinary
Examples
Calcule el hash MD5 de los datos binarios decodificados de la cadena Base64 '1101'.
-
Instrucción de consulta
* | SELECT MD5(from_base64('1101')) AS md5 Resultados de la consulta: El valor de la columna md5 es
rG3lOanun9N57opubMnPDw==.
Función to_base64
La función to_base64 codifica datos binarios en una cadena codificada en Base64.
Syntax
to_base64(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
varchar
Examples
Codifique los datos binarios decodificados de la cadena Base64 '10' en una cadena Base64.
-
Instrucción de consulta
* | SELECT to_base64(from_base64('10')) AS base64 Resultados de la consulta: El valor de la columna base64 es
1w==.
Función to_base64url
La función to_base64url codifica datos binarios en una cadena Base64 segura para URL.
Syntax
to_base64url(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
varchar
Examples
Codifique los datos binarios decodificados de la cadena Base64 '100' en una cadena Base64 segura para URL.
-
Instrucción de consulta
* | SELECT to_base64url(from_base64('100')) Resultados de la consulta:

Función to_hex
La función to_hex convierte datos binarios en una cadena hexadecimal.
Syntax
to_hex(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
varchar
Examples
Convierta los datos binarios decodificados de la cadena Base64 '100' a una cadena hexadecimal.
-
Instrucción de consulta
* | SELECT to_hex(from_base64('100')) Resultados de la consulta: El valor de la columna
_col0esD74D.
Función to_big_endian_64
La función to_big_endian_64 codifica un bigint en su representación binaria big-endian.
Syntax
to_big_endian_64(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión bigint. |
Return value type
varbinary
Examples
Convierta el número 0 a datos binarios big-endian.
-
Instrucción de consulta
* | SELECT to_big_endian_64(0) Resultados de la consulta:

Función sha1
La función sha1 calcula el hash SHA-1 de datos binarios.
Syntax
sha1(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
varbinary
Examples
Calcule el hash SHA-1 de los datos binarios decodificados de la cadena Base64 '1101'.
-
Instrucción de consulta
* | SELECT sha1(from_base64('1101')) AS sha1 Resultados de la consulta:

Función sha256
La función sha256 calcula el hash SHA-256 de datos binarios.
Syntax
sha256(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
varbinary
Examples
Calcule el hash SHA-256 de los datos binarios decodificados de la cadena Base64 '1101'.
-
Instrucción de consulta
* | SELECT sha256(from_base64('1101')) AS sha256 Resultados de la consulta:

Función sha512
La función sha512 calcula el hash SHA-512 de datos binarios.
Syntax
sha512(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
varbinary
Examples
Calcule el hash SHA-512 de los datos binarios decodificados de la cadena Base64 '1101'.
-
Instrucción de consulta
* | SELECT sha512(from_base64('1101')) AS sha512 Resultados de la consulta:

Función xxhash64
La función xxhash64 calcula el hash xxHash64 de datos binarios.
Syntax
xxhash64(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Una expresión varbinary. |
Return value type
varbinary
Examples
Calcule el hash xxHash64 de los datos binarios decodificados de la cadena Base64 '10'.
-
Instrucción de consulta
* | SELECT xxhash64(from_base64('10')) Resultados de la consulta:

Función aes_encrypt
La función aes_encrypt cifra datos binarios mediante cifrado AES. El Estándar de Cifrado Avanzado (AES) es un algoritmo de cifrado simétrico de uso extendido. Admite varios modos de cifrado, incluidos CBC, ECB, OFB, CFB y CTR, así como múltiples estilos de relleno.
Syntax
aes_encrypt(data, key, iv, mode, pad_style)
Parameters
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
data |
Binario |
Sí |
Los datos en texto plano que se van a cifrar. Se admiten valores no constantes. |
|
key |
Binario |
Sí |
La clave utilizada para el cifrado. |
|
iv |
Binario |
Sí |
El vector de inicialización (IV) para el cifrado. |
|
mode |
Cadena |
No |
El modo de cifrado AES. Valor predeterminado: CBC. Valores válidos: CBC (Cipher Block Chaining), ECB (Electronic Code Book), OFB (Output Feedback), CFB (Cipher Feedback), CTR (Counter). |
|
pad_style |
Cadena |
No |
El estilo de relleno. Este parámetro solo surte efecto en modos de bloque (CBC y ECB). Los modos de flujo (OFB, CFB y CTR) no utilizan relleno. Valor predeterminado: pkcs7. Valores válidos: pkcs7 (relleno PKCS#7), iso7816 (relleno ISO 7816), x923 (relleno ANSI X.923). |
Return value type
Binario
Examples
Ejemplo 1: Cifrar datos con el modo CBC predeterminado.
Registro sin procesar: {"test":"aliyuntest"}
-
Regla de procesamiento
* | extend result=to_base64(aes_encrypt(cast(test as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary))) -
Resultado del procesamiento:
{ "result": "gXIqu0cBBtZHQxJBK8GLeA==", "test": "aliyuntest" }
Ejemplo 2: Cifrar datos con el modo ECB.
Registro sin procesar: {"test":"aliyuntest"}
-
Regla de procesamiento
* | extend result=to_base64(aes_encrypt(cast(test as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary),'ECB')) -
Resultado del procesamiento:
{ "result": "xh6A2VwoVuojfuA0CHuLBQ==", "test": "aliyuntest" }
Ejemplo 3: Cifrar datos con el modo de flujo OFB.
Registro sin procesar: {"test":"aliyuntest"}
-
Regla de procesamiento
* | extend result=to_base64(aes_encrypt(cast(test as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary),'OFB')) -
Resultado del procesamiento:
{ "result": "lBQuflXuEE2/bQ==", "test": "aliyuntest" }
Función aes_decrypt
La función aes_decrypt descifra datos binarios cifrados con AES.
Syntax
aes_decrypt(data, key, iv, mode, pad_style)
Parameters
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
data |
Binario |
Sí |
Los datos de texto cifrado que se van a descifrar. |
|
key |
Binario |
Sí |
La clave utilizada para el descifrado. |
|
iv |
Binario |
Sí |
El vector de inicialización (IV) para el descifrado. |
|
mode |
Cadena |
No |
El modo de descifrado AES. Valor predeterminado: CBC. Valores válidos: CBC (Cipher Block Chaining), ECB (Electronic Code Book), OFB (Output Feedback), CFB (Cipher Feedback), CTR (Counter). |
|
pad_style |
Cadena |
No |
El estilo de relleno. Este parámetro solo surte efecto en modos de bloque (CBC y ECB). Valor predeterminado: pkcs7. Valores válidos: pkcs7 (relleno PKCS#7), iso7816 (relleno ISO 7816), x923 (relleno ANSI X.923). |
Return value type
Binario (bytes de texto plano, mostrados como texto con codificación UTF-8)
Examples
Ejemplo 1: Descifrar datos cifrados con CBC (entrada Base64).
Registro sin procesar: {"test":"gXIqu0cBBtZHQxJBK8GLeA=="}
-
Regla de procesamiento
* | extend result=aes_decrypt(cast(from_base64(test) as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary)) -
Resultado del procesamiento:
{ "test": "gXIqu0cBBtZHQxJBK8GLeA==", "result": "aliyuntest" }
Ejemplo 2: Descifrar datos cifrados con el modo de flujo OFB.
Registro sin procesar: {"test": "lBQuflXuEE2/bQ=="}
-
Regla de procesamiento
* | extend result=cast(aes_decrypt(cast(from_base64(test) as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary), 'OFB') as varchar) -
Resultado del procesamiento:
{ "test": "lBQuflXuEE2/bQ==", "result": "aliyuntest" }
Ejemplo 3: Descifrar datos cifrados con el modo ECB.
Registro sin procesar: {"test": "xh6A2VwoVuojfuA0CHuLBQ=="}
-
Regla de procesamiento
* | extend result=cast(aes_decrypt(cast(from_base64(test) as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary), 'ECB') as varchar) -
Resultado del procesamiento:
{ "test": "xh6A2VwoVuojfuA0CHuLBQ==", "result": "aliyuntest" }