Verschlüsselt die angegebenen Werte unter Verwendung des gelieferten Chiffrierschlüssels und gibt einen LONG BINARY-Wert zurück.
ENCRYPT( string-expression, key [, algorithm [ format ] ] )
algorithm : 'AES' | 'AES256' | 'AES_FIPS' | 'AES256_FIPS' [ format ] format: ( FORMAT=RAW [;padding ] ) [ initialization-vector ] ) padding: PADDING=PKCS5 | ZEROES | NONE ]
Zeichenfolgenausdruck Die zu verschlüsselnden Daten. Auch binäre Werte können an diese Funktion übergeben werden. Dieser Parameter beachtet die Groß- und Kleinschreibung, sogar in Datenbanken, die das nicht tun.
key Der zum Verschlüsseln von Zeichenfolgenausdruck verwendete Chiffrierschlüssel. Dieser Schlüssel muss auch zum Dechiffrieren des Werts verwendet werden, um den ursprünglichen Wert zu erhalten. Dieser Parameter beachtet die Groß- und Kleinschreibung, sogar in Datenbanken, die das nicht tun.
Wie bei den meisten Kennwörtern sollte ein Schlüssel gewählt werden, der nur schwer erraten werden kann. Es wird empfohlen, dass Sie einen Wert für Ihren Schlüssel wählen, der mindestens 16 Zeichen umfasst und eine Mischung aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen enthält. Diesen Schlüssel benötigen Sie jedes Mal, wenn Sie die Daten entschlüsseln möchten.
Achten Sie bei stark verschlüsselten Spalten darauf, eine Kopie des Schlüssels an einem sicheren Ort zu verwahren. Wenn Sie den Chiffrierschlüssel verlieren, gibt es keine Möglichkeit, auf die Daten zuzugreifen, auch nicht mit Unterstützung durch den technischen Support. Sie müssen die Spalte verwerfen und eine neue Spalte erstellen.
algorithm Dieser optionale Parameter gibt den Algorithmus an, der beim Verschlüsseln von Zeichenfolgenausdruck verwendet werden soll. Der zur Implementierung der starken Verschlüsselung verwendete Algorithmus ist Rijndael: ein Block-Verschlüsselungsalgorithmus, der als Advanced Encryption Standard (AES ) für Block-Chiffren vom amerikanischen National Institute of Standards and Technology (NIST) ausgewählt wurde).
Sie können einen der FIPS-zertifizierten Algorithmen als Algorithmus für jede Plattform festlegen, die FIPS-zertifizierte Verschlüsselung unterstützt.
RSA- und FIPS-zertifizierte Verschlüsselung ist nicht auf allen Plattformen verfügbar. Weitere Hinweise dazu, welche Plattformen
welche Verschlüsselungsmethode unterstützen, finden Sie unter http://www.sybase.com/detail?id=1061806.
Wenn kein algorithm angegeben ist, wird standardmäßig AES verwendet. Wenn der Datenbankserver mit der Serveroption "fips" gestartet wurde, wird statt dessen AES_FIPS verwendet.
FORMAT=RAW Dieser optionale Parameter verschlüsselt die Daten im RAW-Format. Der Initialisierungsvektor-Parameter ist erforderlich.
Auffüllen_mit_Zeichen Dieser optionale Parameter gibt den zu verwendenden Typ des Auffüllens mit Zeichen an. Wenn Auffüllen_mit_Zeichen nicht angegeben ist, wird standardmäßig PKCS5 verwendet.
PKCS5 Die Daten werden gemäß dem PKCS#5-Algorithmus mit Zeichen aufgefüllt. Die ausgegebenen (verschlüsselten) Daten sind zwischen 1 und 16 Byte länger als die eingegebenen Daten.
ZEROES Die Daten werden mit Nullen (0) aufgefüllt. Die ausgegebenen (verschlüsselten) Daten sind bis zu 15 Byte länger als die eingegebenen Daten. Diese Ausgabe wird beim Entschlüsseln auch mit Nullen aufgefüllt.
NONE Die Daten werden nicht mit Zeichen aufgefüllt. Die Länge der eingegebenen Daten muss ein Vielfaches der Chiffrierblock-Länge (16 Byte) sein.
Initialisierungsvektor Dieser Initialisierungsvektor-Parameter ist erforderlich, wenn FORMAT=RAW angegeben ist. Die Zeichenfolge kann nicht länger sein als 16 Byte. Jeder Wert unter 16 Byte wird mit 0-Bytes aufgefüllt. Diese Zeichenfolge kann nicht auf NULL gesetzt werden.
LONG BINARY
Der von dieser Funktion zurückgegebene LONG BINARY-Wert ist maximal 31 Byte länger als der eingegebene Zeichenfolgenausdruck. Der von dieser Funktion zurückgegebene Wert ist nicht in lesbarer Form. Sie können die DECRYPT-Funktion verwenden, um einen Zeichenfolgenausdruck zu entschlüsseln, der mit der ENCRYPT-Funktion verschlüsselt wurde. Um einen Zeichenfolgenausdruck erfolgreich zu entschlüsseln, müssen Sie denselben Chiffrierschlüssel und Algorithmus verwenden wie zum Verschlüsseln der Daten. Wenn Sie einen ungültigen Chiffrierschlüssel angeben, wird ein Fehler generiert. Der Verlust eines Schlüssels führt dazu, dass die betreffenden Daten nicht mehr verfügbar sind und sich nicht wiederherstellen lassen.
Wenn Sie verschlüsselte Werte in einer Tabelle speichern, sollte die Spalte BINARY oder LONG BINARY sein, damit keine Zeichensatzkonvertierung an den Daten durchgeführt wird.
Wenn FORMAT=RAW angegeben ist, werden die Daten mit RAW-Verschlüsselung verschlüsselt. Sie müssen den Chiffrierschlüssel angeben, den Initialisierungsvektor und optional ein Format zum Auffüllen mit Zeichen. Dieselben Werte müssen beim Entschlüsseln der Daten angegeben werden. Die Entschlüsselung kann außerhalb des Datenbankservers ausgeführt werden. Sie können allerdings auch die DECRYPT-Funktion verwenden.
RAW-Verschlüsselung ist nicht empfehlenswert, wenn die Daten nur innerhalb des Datenbankservers verschlüsselt und entschlüsselt werden sollen, weil Sie den Initialisierungsvektor und das Auffüllen mit Zeichen angeben müssen und der Chiffrierschlüssel nicht während der Entschlüsselung überprüft werden kann.
SQL/2008 Erweiterung des Herstellers.
Der folgende Trigger verschlüsselt die user_pwd-Spalte der user_info-Tabelle. Diese Spalte enthält Benutzerkennwörter und der Trigger wird ausgelöst, sobald ein Kennwortwert geändert wird.
CREATE TRIGGER encrypt_updated_pwd BEFORE UPDATE OF user_pwd ON user_info REFERENCING NEW AS new_pwd FOR EACH ROW BEGIN SET new_pwd.user_pwd=ENCRYPT( new_pwd.user_pwd, '8U3dkA' ); END; |
Die folgende SELECT-Anweisung verwendet RAW-Verschlüsselung zum Verschlüsseln der binary_data-Spalte der Tabelle "SensitiveData". Die verschlüsselten Daten werden mit Nullen aufgefüllt:
SELECT ENCRYPT( binary_data, 'TheEncryptionKey', 'AES(format=raw;padding=zeroes)', 'ThisIsTheIV'), LENGTH(binary_data) FROM SensitiveData; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |