Delen via


ENCRYPTBYASYMKEY (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Deze functie versleutelt gegevens met een asymmetrische sleutel.

Transact-SQL syntaxis-conventies

Syntaxis

EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )  

Arguments

asym_key_ID
De ID van een asymmetrische sleutel in de database. asym_key_ID heeft een int-datatype .

Duidelijke tekst
Een reeks data die ENCRYPTBYASYMKEY versleuteld wordt met de asymmetrische sleutel. Cleartext kan een

  • binary
  • teken
  • nchar
  • nvarchar
  • varbinary

or

  • varchar

datatype.

@plaintext
Een variabele met een waarde die ENCRYPTBYASYMKEY versleuteld wordt met de asymmetrische sleutel. @plaintext kunt een

  • binary
  • teken
  • nchar
  • nvarchar
  • varbinary

or

  • varchar

datatype.

Retourtypen

varbinary, met een maximale grootte van 8.000 bytes.

Opmerkingen

Versleutelings- en ontsleutelingsoperaties die asymmetrische sleutels gebruiken, verbruiken aanzienlijke middelen en worden daardoor duurder dan symmetrische sleutelversleuteling en -ontsleuteling. Wij raden ontwikkelaars aan om asymmetrische sleutelversleuteling en -ontsleuteling te vermijden op grote datasets – bijvoorbeeld gebruikersdatasets die zijn opgeslagen in databasetabellen. In plaats daarvan raden we aan dat ontwikkelaars die data eerst versleutelen met een sterke symmetrische sleutel, en daarna die symmetrische sleutel versleutelen met een asymmetrische sleutel.

Afhankelijk van het algoritme ENCRYPTBYASYMKEY levert NULL terug als de invoer een bepaald aantal bytes overschrijdt. De specifieke beperkingen:

  • een 512-bits RSA-sleutel kan tot 53 bytes versleutelen
  • Een 1024-bits sleutel kan tot 117 bytes versleutelen
  • Een 2048-bits sleutel kan tot 245 bytes versleutelen

In SQL Server dienen zowel certificaten als asymmetrische sleutels als wrappers over RSA-sleutels.

Voorbeelden

Dit voorbeeld versleutelt de tekst die is opgeslagen in @cleartext met de asymmetrische sleutel JanainaAsymKey02. De instructie voegt de versleutelde gegevens in de ProtectedData04 tabel in.

INSERT INTO AdventureWorks2022.Sales.ProtectedData04   
    VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',  
    EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );  
GO  

Zie ook

DECRYPTBYASYMKEY (Transact-SQL)
ASYMMETRISCHE SLEUTEL (Transact-SQL) maken
Versleutelingshiërarchie