Megosztás a következőn keresztül:


A try_aes_decrypt függvény

A következőkre vonatkozik: jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 13.3 LTS és újabb

Visszafejt egy AES-titkosítással előállított bináris fájlt, és null értéket ad vissza, ha az bármilyen okból meghiúsul.

Syntax

try_aes_decrypt(expr, key [, mode [, padding [, aad]]])

Argumentumok

  • expr: A visszafejtendő BINÁRIS kifejezés.
  • key: BINÁRIS kifejezés. Meg kell egyeznie az eredetileg a titkosított érték előállításához használt kulccsal, és 16, 24 vagy 32 bájt hosszúnak kell lennie.
  • mode: A titkosított érték előállításához használt titkosítási módot leíró opcionális STRING-kifejezés.
  • padding: Opcionális STRING-kifejezés, amely leírja, hogyan kezelte a titkosítás az érték kulcshosszra való kitöltését.
  • aad: Opcionális STRING kifejezés, amely hitelesített további adatokat (AAD) GCM biztosít módban. Meg kell egyeznie a aad titkosított érték előállításához használt értékkel. A Databricks SQL és a Databricks Runtime 13.3 LTS és újabb verziókra vonatkozik.

Válaszok

BINÁRIS.

mode a (kis- és nagybetűket nem megkülönböztető) egyikének kell lennie:

  • 'ECB': Elektronikus kódkönyv (EKB) mód használata.
  • 'GCM': A Galois/Counter mód (GCM) használata. Ez az alapértelmezett beállítás.

padding a (kis- és nagybetűket nem megkülönböztető) egyikének kell lennie:

  • 'NONE': Nem használ kitöltést. Csak a következőre érvényes 'GCM': .
  • 'PKCS': Nyilvános kulcsú titkosítási szabványokat (PKCS) használ. Csak a következőre érvényes 'ECB': .
  • 'DEFAULT': A módhoz 'GCM' és 'PKCS' a módhoz 'ECB' használható'NONE'.

Az algoritmus a kulcs hosszától függ:

  • 16: AES-128
  • 24: AES-192
  • 32: AES-256

A hibafeltételek helyett NULL a try_aes_decrypt használjon hibákat.

Példák

> 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