ENCRYPTBYASYMKEY (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Diese Funktion verschlüsselt Daten mit einem asymmetrischen Schlüssel.
Transact-SQL-Syntaxkonventionen
Syntax
EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )
Argumente
asym_key_ID
Die ID eines asymmetrischen Schlüssels in der Datenbank. asym_Key_ID weist den Datentyp int auf.
Klartext
Eine Zeichenfolge von Daten, die ENCRYPTBYASYMKEY
mit dem asymmetrischen Schlüssel verschlüsselt. Klartext kann die Datentypen
- binary
- char
- nchar
- nvarchar
- varbinary
oder
- varchar
aufweisen.
@plaintext
Eine Variable, die einen Wert enthält, der von ENCRYPTBYASYMKEY
mit dem asymmetrischen Schlüssel verschlüsselt wird. @plaintext kann die Datentypen
- binary
- char
- nchar
- nvarchar
- varbinary
oder
- varchar
aufweisen.
Rückgabetypen
varbinary mit einer maximalen Größe von 8.000 Byte.
Bemerkungen
Verschlüsselungs- und Entschlüsselungsvorgänge, die asymmetrische Schlüssel verwenden, verwenden viele Ressourcen und werden deshalb kostspielig, verglichen mit der Verschlüsselung und Entschlüsselung mit einem symmetrischen Schlüssel. Es wird empfohlen, dass Entwickler asymmetrische Schlüssel für Verschlüsselungs- und Entschlüsselungsvorgänge auf großen Datasets vermeiden, z.B. bei Benutzerdaten in Datenbanktabellen. Stattdessen sollten Entwickler die Daten zunächst mit einem starken symmetrischen Schlüssel verschlüsseln und dann diesen symmetrischen Schlüssel mit einem asymmetrischen Schlüssel verschlüsseln.
ENCRYPTBYASYMKEY
gibt je nach Algorithmus NULL zurück, wenn die Eingabe eine bestimmte Anzahl von Bytes überschreitet. Die spezifischen Grenzwerte:
- Ein 512-Bit-RSA-Schlüssel kann bis zu 53 Bytes verschlüsseln
- Ein 1024-Bit-Schlüssel kann bis zu 117 Bytes verschlüsseln
- Ein 2048-Bit-Schlüssel kann bis zu 245 Bytes verschlüsseln
Sowohl Zertifikate als auch asymmetrische Schlüssel dienen in SQL Server als Wrapper für RSA-Schlüssel.
Beispiele
Im folgenden Beispiel wird der in @cleartext
gespeicherte Text mit dem asymmetrischen Schlüssel JanainaAsymKey02
verschlüsselt. Due Anweisung fügt die verschlüsselten Daten in die Tabelle ProtectedData04
ein.
INSERT INTO AdventureWorks2022.Sales.ProtectedData04
VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',
EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );
GO
Weitere Informationen
DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
Verschlüsselungshierarchie