A 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 10.4 LTS és újabb

Visszafejt egy AES-titkosítással előállított bináris fájlt.

Syntax

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

Argumentumok

  • expr: A BINARY visszafejtendő kifejezés.
  • key: Kifejezés BINARY . 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: Nem kötelező STRING kifejezés, amely leírja, hogyan kezelte a titkosítás az érték kulcshosszra történő 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:

  • 'CBC': Titkosítási blokkláncolás (CBC) mód használata. A Databricks SQL, a Databricks Runtime 13.3 LTS és újabb verziókra vonatkozik.
  • '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' és 'CBC'.
  • 'DEFAULT': A használat 'NONE' és a 'GCM''PKCS' használat 'ECB' és 'CBC' a mód.

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

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

A visszafejtéssel és visszatéréssel NULL járó hibafeltételek elviseléséhez használja a try_aes_decrypt

Példák

> 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 aes_decrypt(unbase64('U2FsdGVkX1/ERGxwEOTDpDD4bQvDtQaNe+gXGudCcUk='), '0000111122223333', 'CBC', 'PKCS');
  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