Sdílet prostřednictvím


ENCRYPTBYASYMKEY (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Tato funkce šifruje data asymetrickým klíčem.

Transact-SQL konvence syntaxe

Syntaxe

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

Arguments

asym_key_ID
ID asymetrického klíče v databázi. asym_key_ID má typ dat int .

Čistý text
Řetězec dat, který ENCRYPTBYASYMKEY se zašifruje asymetrickým klíčem. Cleartext může mít

  • binary
  • znak
  • nchar
  • nvarchar
  • varbinary

nebo

  • varchar

datový typ.

@plaintext
Proměnná obsahující hodnotu, která ENCRYPTBYASYMKEY se zašifruje asymetrickým klíčem. @plaintext může mít

  • binary
  • znak
  • nchar
  • nvarchar
  • varbinary

nebo

  • varchar

datový typ.

Návratové typy

varbinary, s maximální velikostí 8 000 bajtů.

Poznámky

Šifrovací a dešifrovací operace využívající asymetrické klíče spotřebovávají značné zdroje, a proto jsou ve srovnání se šifrováním a dešifrováním symetrického klíče dražší. Doporučujeme, aby se vývojáři vyhnuli asymetrickému šifrování a dešifrovacím operacím na velkých datových sadách – například uživatelských datových sadách uložených v databázových tabulkách. Místo toho navrhujeme, aby vývojáři nejprve zašifrovali tato data silným symetrickým klíčem a poté tento symetrický klíč zašifrovali asymetrickým klíčem.

V závislosti na algoritmu vrací NULL, ENCRYPTBYASYMKEY pokud vstup překročí určitý počet bajtů. Konkrétní limity:

  • 512bitový RSA klíč může šifrovat až 53 bajtů
  • 1024bitový klíč může šifrovat až 117 bajtů
  • 2048bitový klíč může šifrovat až 245 bajtů

V SQL Serveru slouží jak certifikáty, tak asymetrické klíče jako obaly nad RSA klíči.

Examples

Tento příklad šifruje text uložený v asymetrickém @cleartext klíči JanainaAsymKey02. Příkaz vloží zašifrovaná data do tabulky ProtectedData04 .

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

Viz také

DECRYPTBYASYMKEY (Transact-SQL)
VYTVOŘIT ASYMETRICKÝ KLÍČ (Transact-SQL)
Hierarchie šifrování