Megosztás a következőn keresztül:


ENCRYPTBYASYMKEY (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Ez a függvény aszimmetrikus kulmánnyal titkosítja az adatokat.

Transact-SQL szintaxis konvenciók

Szemantika

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

Arguments

asym_key_ID
Az adatbázisban található aszimmetrikus kulcs azonosítója. asym_key_IDint adattípussal rendelkezik.

Világos szöveg
Egy adatlánc, amely ENCRYPTBYASYMKEY aszimmetrikus kulmánnyal titkosítható. A szöveg lehet egy

  • binary
  • karakteres
  • nchar
  • nvarchar
  • varbinary

vagy

  • varchar

adattípus.

@plaintext
Egy változó, amely egy értéket tartalmaz, amely ENCRYPTBYASYMKEY aszimmetrikus kulmánnyal titkosítható. @plaintext lehet egy

  • binary
  • karakteres
  • nchar
  • nvarchar
  • varbinary

vagy

  • varchar

adattípus.

Visszatérési típusok

varbinary, legfeljebb 8000 bájt mérettel.

Megjegyzések

Az aszimmetrikus kulcsokat használó titkosítási és dekódolási műveletek jelentős erőforrásokat fogyasztanak, ezért drágává válnak a szimmetrikus kulcsos titkosításhoz és dekódoláshoz képest. Javasoljuk, hogy a fejlesztők kerüljék az aszimmetrikus kulcstitkosítást és dekódolási műveleteket nagy adathalmazokon – például adatbázis táblákban tárolt felhasználói adathalmazoknál. Ehelyett azt javasoljuk, hogy a fejlesztők először titkosítsák az adatokat egy erős szimmetrikus kulccsal, majd egy aszimmetrikus kulccsal titkosítsák azt.

Az algoritmustól függően ENCRYPTBYASYMKEYNULL értéket ad, ha a bemenet meghaladja a bizonyos bájtszámot. A konkrét határok:

  • egy 512 bites RSA kulcs akár 53 bájtot is képes titkosítani
  • Egy 1024-bites kulcs akár 117 bájtot is képes titkosítani
  • Egy 2048 bites kulcs akár 245 bájtot is képes titkosítani

Az SQL Serverben mind a tanúsítványok, mind az aszimmetrikus kulcsok az RSA kulcsok fölé borítanak.

Példák

Ez a példa titkosítja a szöveget @cleartext az aszimmetrikus kulmánnyal JanainaAsymKey02. Az utasítás beilleszti a titkosított adatokat a ProtectedData04 táblába.

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

Lásd még:

DECRYPTBYASYMKEY (Transact-SQL)
ASZIMMETRIKUS KULCS LÉTREHOZÁSA (Transact-SQL)
Titkosítási hierarchia