

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verschlüsselungs- und Entschlüsselungsfunktionen
<a name="encryption-decryption-functions"></a>

Verschlüsselungs- und Entschlüsselungsfunktionen helfen SQL-Entwicklern, sensible Daten vor unberechtigtem Zugriff oder Missbrauch zu schützen, indem sie sie zwischen einer lesbaren Klartextform und einer unlesbaren Chiffretextform konvertieren.

AWS Clean Rooms Spark SQL unterstützt die folgenden Verschlüsselungs- und Entschlüsselungsfunktionen:

**Topics**
+ [AES\$1ENCRYPT-Funktion](AES_ENCRYPT.md)
+ [AES\$1DECRYPT-Funktion](AES_DECRYPT.md)

# AES\$1ENCRYPT-Funktion
<a name="AES_ENCRYPT"></a>

Die AES\$1ENCRYPT-Funktion wird zum Verschlüsseln von Daten mit dem Advanced Encryption Standard (AES) -Algorithmus verwendet.

## Syntax
<a name="AES_ENCRYPT-syntax"></a>

```
aes_encrypt(expr, key[, mode[, padding[, iv[, aad]]]])
```

## Argumente
<a name="AES_ENCRYPT-arguments"></a>

 *expr*   
Der zu verschlüsselnde Binärwert.

 *key*   
Die Passphrase, die zum Verschlüsseln der Daten verwendet werden soll.  
Schlüssellängen von 16, 24 und 32 Bit werden unterstützt.

 *Modus*   
Gibt an, welcher Blockchiffriermodus zum Verschlüsseln von Nachrichten verwendet werden soll.   
Gültige Modi: ECB (Electronic CodeBook), GCM (Galois/Counter Mode), CBC (Cipher-Block Chaining).

 *Polsterung*   
Gibt an, wie Nachrichten aufgefüllt werden, deren Länge kein Vielfaches der Blockgröße ist.   
Gültige Werte: PKCS, NONE, DEFAULT.   
Das DEFAULT-Padding bedeutet PKCS (Public Key Cryptography Standards) für ECB, NONE für GCM und PKCS für CBC.  
Unterstützte Kombinationen von (*Mode*, *Padding*) sind ('ECB', 'PKCS'), ('GCM', 'NONE') und ('CBC', 'PKCS').

 *iv*   
Optionaler Initialisierungsvektor (IV). Wird nur für die Modi CBC und GCM unterstützt.   
Gültige Werte: 12 Byte lang für GCM und 16 Byte für CBC.

 *aad*   
Optionale zusätzliche authentifizierte Daten (AAD). Wird nur für den GCM-Modus unterstützt. Dies kann jede beliebige Eingabe in freier Form sein und muss sowohl für die Verschlüsselung als auch für die Entschlüsselung bereitgestellt werden.

## Rückgabetyp
<a name="AES_ENCRYPT-returm-type"></a>

Die Funktion AES\$1ENCRYPT gibt unter Verwendung von AES im angegebenen Modus mit der angegebenen Auffüllung den verschlüsselten Wert *expr* zurück.

## Beispiele
<a name="AES_ENCRYPT-example"></a>

Das folgende Beispiel zeigt, wie die Spark-SQL-Funktion AES\$1ENCRYPT verwendet wird, um eine Datenfolge (in diesem Fall das Wort „Spark“) mit einem angegebenen Verschlüsselungsschlüssel sicher zu verschlüsseln. Der resultierende Chiffretext wird dann Base64-kodiert, um das Speichern oder Übertragen zu erleichtern.

```
SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop'));
  4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
```

Das folgende Beispiel zeigt, wie die Spark-SQL-Funktion AES\$1ENCRYPT verwendet wird, um eine Datenfolge (in diesem Fall das Wort „Spark“) mit einem angegebenen Verschlüsselungsschlüssel sicher zu verschlüsseln. Der resultierende Chiffretext wird dann im Hexadezimalformat dargestellt, was für Aufgaben wie Datenspeicherung, Übertragung oder Debugging nützlich sein kann.

```
SELECT hex(aes_encrypt('Spark', '0000111122223333'));
 83F16B2AA704794132802D248E6BFD4E380078182D1544813898AC97E709B28A94
```

Das folgende Beispiel zeigt, wie Sie mit der Funktion AES\$1ENCRYPT von Spark SQL eine Datenfolge (in diesem Fall „Spark SQL“) mithilfe eines angegebenen Verschlüsselungsschlüssels, Verschlüsselungsmodus und Füllmodus sicher verschlüsseln können. Der resultierende Chiffretext wird dann Base64-kodiert, um das Speichern oder Übertragen zu erleichtern.

```
SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'ECB', 'PKCS'));
 3lmwu+Mw0H3fi5NDvcu9lg==
```

# AES\$1DECRYPT-Funktion
<a name="AES_DECRYPT"></a>

Die AES\$1DECRYPT-Funktion wird zum Entschlüsseln von Daten mit dem Advanced Encryption Standard (AES) -Algorithmus verwendet.

## Syntax
<a name="AES_DECRYPT-syntax"></a>

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

## Argumente
<a name="AES_DECRYPT-arguments"></a>

 *expr*   
Der zu entschlüsselnde Binärwert.

 *key*   
Die Passphrase, die zum Entschlüsseln der Daten verwendet werden soll.  
Die Passphrase muss mit dem Schlüssel übereinstimmen, der ursprünglich zur Erzeugung des verschlüsselten Werts verwendet wurde, und 16, 24 oder 32 Byte lang sein.

 *Modus*   
Gibt an, welcher Blockchiffriermodus zum Entschlüsseln von Nachrichten verwendet werden soll.   
Gültige Modi: ECB, GCM, CBC.

 *Polsterung*   
Gibt an, wie Nachrichten aufgefüllt werden, deren Länge kein Vielfaches der Blockgröße ist.   
Gültige Werte: PKCS, NONE, DEFAULT.   
Das DEFAULT-Padding bedeutet PKCS für ECB, NONE für GCM und PKCS für CBC.

 *aad*   
Optionale zusätzliche authentifizierte Daten (AAD). Wird nur für den GCM-Modus unterstützt. Dies kann jede beliebige Eingabe in freier Form sein und muss sowohl für die Verschlüsselung als auch für die Entschlüsselung bereitgestellt werden.

## Rückgabetyp
<a name="AES_DECRYPT-return-type"></a>

Gibt einen entschlüsselten Wert von *expr zurück, der AES im Modus* mit Auffüllung verwendet.

## Beispiele
<a name="AES_DECRYPT-examples"></a>

Das folgende Beispiel zeigt, wie die Spark-SQL-Funktion AES\$1ENCRYPT verwendet wird, um eine Datenfolge (in diesem Fall das Wort „Spark“) mit einem angegebenen Verschlüsselungsschlüssel sicher zu verschlüsseln. Der resultierende Chiffretext wird dann Base64-kodiert, um das Speichern oder Übertragen zu erleichtern. 

```
SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop'));
  4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
```

Das folgende Beispiel zeigt, wie die Spark-SQL-Funktion AES\$1DECRYPT verwendet wird, um Daten zu entschlüsseln, die zuvor verschlüsselt und Base64-kodiert wurden. Der Entschlüsselungsprozess erfordert den richtigen Verschlüsselungsschlüssel und die richtigen Parameter (Verschlüsselungsmodus und Füllmodus), um die ursprünglichen Klartextdaten erfolgreich wiederherzustellen.

```
SELECT aes_decrypt(unbase64('3lmwu+Mw0H3fi5NDvcu9lg=='), '1234567890abcdef', 'ECB', 'PKCS');
 Spark SQL
```