aes_decrypt
関数
適用対象: Databricks SQL Databricks Runtime 10.4 LTS 以降
AES 暗号化を使用して生成されたバイナリを復号化します。
構文
aes_decrypt(expr, key [, mode [, padding [, aad]]])
引数
expr
: 復号化するBINARY
式。key
:BINARY
式。 暗号化された値の生成に使用された元のキーに一致し、16、24、または 32 バイトの長さである必要があります。mode
: 暗号化された値の生成に使用された暗号化モードを説明する省略可能なSTRING
式。padding
: 値をキー長にするためのパディングを暗号化でどのように処理したかを説明する省略可能なSTRING
式。aad
: 認証された追加データ (AAD) をGCM
モードで提供する省略可能なSTRING
式。 暗号化された値を生成するために使用されるaad
と一致する必要があります。 Databricks SQL と Databricks Runtime 13.3 LTS 以降に適用されます。
返品
バイナリ。
mode
は次のいずれかにする必要があります (大文字と小文字は区別されません)。
'CBC'
: 暗号ブロック連鎖 (CBC) モードを使用します。 Databricks SQL と Databricks Runtime 13.3 LTS 以降に適用されます。'ECB'
: 電子コードブック (ECB) モードを使用します。'GCM'
: Galois/Counter Mode (GCM) を使用します。 既定のプランです。
padding
は次のいずれかにする必要があります (大文字と小文字は区別されません)。
'NONE'
: 埋め込みを使用しません。'GCM'
でのみ有効です。'PKCS'
: 公開キー暗号化標準 (PKCS) の埋め込みを使用します。'ECB'
と'CBC'
でのみ有効です。'DEFAULT'
:'GCM'
モードには'NONE'
、'ECB'
モードと'CBC'
モードには'PKCS'
を使用します。
アルゴリズムはキーの長さによって異なります。
16
: AES-12824
: AES-19232
: AES-256
復号化の結果として発生するエラー状態を許容し、代わりに NULL
を返すには、try_aes_decrypt を使用します
例
> 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