Fonction try_aes_decrypt
S’applique à : Databricks SQL
Databricks Runtime 13.3 LTS et versions ultérieures
Déchiffre un fichier binaire produit à l’aide du chiffrement AES et retourne NULL si cela échoue pour une raison quelconque.
Syntaxe
try_aes_decrypt(expr, key [, mode [, padding [, aad]]])
Arguments
expr
: expression binaire (BINARY) à déchiffrer.key
: expression BINARY. Doit correspondre à la clé utilisée à l’origine pour produire la valeur chiffrée, et avoir une longueur de 16, 24 ou 32 octets.mode
: expression de type chaîne (STRING) facultative décrivant le mode de chiffrement utilisé pour produire la valeur chiffrée.padding
: expression de type chaîne (STRING) facultative décrivant comment le chiffrement a géré le remplissage de la valeur pour atteindre la longueur de clé.aad
: expressionSTRING
facultative fournissant des données supplémentaires authentifiées (AAD) en modeGCM
. Doit correspondre auaad
utilisé pour produire la valeur chiffrée. S’applique à Databricks SQL et Databricks Runtime 13.3 LTS et versions ultérieures.
Retours
Une valeur BINARY.
mode
doit être l’un des éléments suivants (insensible à la casse) :
'ECB'
: utilisez le mode Electronic CodeBook (ECB).'GCM'
: utilisez Galois/Counter Mode (GCM). Il s’agit de la valeur par défaut.
padding
doit être l’un des éléments suivants (insensible à la casse) :
'NONE'
: n’utilise aucun remplissage. Valide uniquement avec'GCM'
.'PKCS'
: utilise le remplissage Public Key Cryptography Standards (PKCS). Valide uniquement avec'ECB'
.'DEFAULT'
: utilise le mode'NONE'
pour'GCM'
et'PKCS'
pour'ECB'
.
L’algorithme dépend de la longueur de la clé :
16
: AES-12824
: AES-19232
: AES-256
Pour déclencher des erreurs plutôt que NULL
en cas de conditions d’erreur, utilisez try_aes_decrypt.
Exemples
> SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop'));
4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
> SELECT cast(try_aes_decrypt(unbase64('4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn'),
'abcdefghijklmnop') AS STRING);
Spark
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'ECB', 'PKCS'));
3lmwu+Mw0H3fi5NDvcu9lg==
> SELECT cast(try_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==
-- 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('Spark SQL', '1234567890abcdef', 'GCM', 'DEFAULT', '123456789012', 'Some AAD'));
MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA==
> SELECT cast(try_aes_decrypt(unbase64('MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA=='),
'1234567890abcdef', 'GCM', 'DEFAULT', 'Some AAD') AS STRING);
Spark SQL
Fonctions connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour