Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Función
Se aplica a:
Databricks SQL
Databricks Runtime 10.4 LTS y versiones posteriores
Cifra un archivo binario mediante el cifrado AES.
Sintaxis
aes_encrypt(expr, key [, mode [, padding[, iv[, aad]]]])
Argumentos
-
expr: La expresiónBINARYque será cifrada. -
key: expresiónBINARY. Es la clave que se va a usar para cifrarexpr. Debe tener una longitud de 16, 24 o 32 bytes. -
mode: Una expresión opcionalSTRINGque describe el modo de cifrado. -
padding: Una expresión opcionalSTRINGque describe cómo el cifrado controla el relleno del valor de la longitud de la clave. -
iv:Una expresión opcionalSTRINGque proporciona un vector de inicialización (VI) para los modosGCMoCBC. Se aplica a Databricks SQL y Databricks Runtime 13.3 LTS y versiones posteriores. -
aad: Una expresión opcionalSTRINGque proporciona datos adicionales autenticados (DAA) en modoGCM. Se aplica a Databricks SQL y Databricks Runtime 13.3 LTS y versiones posteriores.
Devoluciones
BINARY.
mode debe ser uno de los siguientes (no se distingue entre mayúsculas y minúsculas):
-
'CBC': use el modo de Encadenamiento de bloques de cifrado (CBC). Se aplica a Databricks SQL, Databricks Runtime 13.3 LTS y versiones posteriores. -
'ECB': use el modo Electronic CodeBook (ECB). -
'GCM': use Galois/Counter (GCM) Mode. Este es el valor predeterminado.
padding debe ser uno de los siguientes (no se distingue entre mayúsculas y minúsculas):
-
'NONE': no usa relleno. Solo es válido con'GCM'. -
'PKCS': usa el relleno de Public Key Cryptography Standards (PKCS). Solo es válido para'ECB'y'CBC'. El relleno de PKCS agrega entre 1 y el número de bytes de la longitud de la clave para rellenarexprcon un múltiplo de la longitud dekey. El valor de cada byte de relleno es el número de bytes que se rellenan. -
'DEFAULT': usa'NONE'para'GCM'y'PKCS'para'ECB'y el modo'CBC'.
iv, cuando se especifica, debe tener un largo de 12 bytes para GCM y 16 bytes para CBC.
El algoritmo depende de la longitud de la clave:
-
16: AES-128 -
24: AES-192 -
32: AES-256
Ejemplos
> SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop'));
4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
> SELECT cast(aes_decrypt(unbase64('4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn'),
'abcdefghijklmnop') AS STRING);
Spark
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'ECB', 'PKCS'));
3lmwu+Mw0H3fi5NDvcu9lg==
> SELECT cast(aes_decrypt(unbase64('3lmwu+Mw0H3fi5NDvcu9lg=='),
'1234567890abcdef', 'ECB', 'PKCS') AS STRING);
Spark SQL
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'GCM'));
2sXi+jZd/ws+qFC1Tnzvvde5lz+8Haryz9HHBiyrVohXUG7LHA==
> SELECT cast(aes_decrypt(unbase64('2sXi+jZd/ws+qFC1Tnzvvde5lz+8Haryz9HHBiyrVohXUG7LHA=='),
'1234567890abcdef', 'GCM') AS STRING);
Spark SQL
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'GCM', 'DEFAULT', '123456789012', 'Some AAD'));
MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA==
> SELECT cast(aes_decrypt(unbase64('MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA=='),
'1234567890abcdef', 'GCM', 'DEFAULT', 'Some AAD') AS STRING);
Spark SQL