aes_decrypt
-functie
Van toepassing op: Databricks SQL Databricks Runtime 10.4 LTS en hoger
Ontsleutelt een binair bestand dat wordt geproduceerd met behulp van AES-versleuteling.
Syntaxis
aes_decrypt(expr, key [, mode [, padding [, aad]]])
Argumenten
expr
: DeBINARY
expressie die moet worden ontsleuteld.key
: EenBINARY
expressie. Moet overeenkomen met de sleutel die oorspronkelijk is gebruikt om de versleutelde waarde te produceren en 16, 24 of 32 bytes lang te zijn.mode
: Een optioneleSTRING
expressie die de versleutelingsmodus beschrijft die wordt gebruikt om de versleutelde waarde te produceren.padding
: Een optioneleSTRING
expressie die beschrijft hoe versleuteling de opvulling van de waarde naar sleutellengte heeft verwerkt.aad
: Een optioneleSTRING
expressie die geverifieerde aanvullende gegevens (AAD) biedt inGCM
de modus. Moet overeenkomen met deaad
gebruikte waarde om de versleutelde waarde te produceren. Is van toepassing op Databricks SQL en Databricks Runtime 13.3 LTS en hoger.
Retouren
EEN BINAIR.
mode
moet een van de volgende zijn (hoofdlettergevoelig):
'CBC'
: De CBC-modus (Cipher-Block Chaining) gebruiken. Van toepassing op Databricks SQL, Databricks Runtime 13.3 LTS en hoger.'ECB'
: Gebruik de modus Electronic CodeBook (ECB).'GCM'
: Galois/Counter Mode (GCM) gebruiken. Dit is de standaardinstelling.
padding
moet een van de volgende zijn (hoofdlettergevoelig):
'NONE'
: gebruikt geen opvulling. Alleen geldig voor'GCM'
.'PKCS'
: Maakt gebruik van PKCS-opvulling (Public Key Cryptography Standards). Alleen geldig voor'ECB'
en'CBC'
.'DEFAULT'
: Gebruikt'NONE'
voor'GCM'
en voor'ECB'
en'CBC'
'PKCS'
modus.
Het algoritme is afhankelijk van de lengte van de sleutel:
16
: AES-12824
: AES-19232
: AES-256
NULL
Gebruik in plaats daarvan try_aes_decrypt
Voorbeelden
> 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
-- try_aes_decrypt tolerates an error where aes_decrypt does not.
> SELECT cast(aes_decrypt(x'1234567890abcdef1234567890abcdef', '1234567890abcdef', 'GCM') AS STRING);
Error: INVALID_PARAMETER_VALUE.AES_KEY
> SELECT cast(try_aes_decrypt(x'1234567890abcdef1234567890abcdef', '1234567890abcdef', 'GCM') AS STRING);
NULL
> SELECT base64(aes_encrypt('Apache Spark', '0000111122223333', 'CBC', 'PKCS'));
U2FsdGVkX1/ERGxwEOTDpDD4bQvDtQaNe+gXGudCcUk=
> SELECT cast(aes_decrypt(unbase64('OkzJi9oaiKJtTMmOrFjH2QWJZYF1UwT+4cA2008LlHA='), '0000111122223333', 'CBC', 'PKCS') AS STRING);
Apache Spark
> 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