Aracılığıyla paylaş


ENCRYPTBYASYMKEY (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Bu fonksiyon, verileri asimetrik bir anahtarla şifreler.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Arguments

asym_key_ID
Veritabanındaki asimetrik anahtarın kimliği. asym_key_IDbir yapay veri tipine sahiptir.

Açık metin
Asimetrik anahtarla şifrelenen bir veri ENCRYPTBYASYMKEY dizisi. Açık metin

  • binary
  • char
  • nchar
  • nvarchar
  • varbinary

veya

  • varchar

veri tipi.

@plaintext
Asimetrik anahtarla şifrelenecek bir değeri ENCRYPTBYASYMKEY taşıyan bir değişken. @plaintext

  • binary
  • char
  • nchar
  • nvarchar
  • varbinary

veya

  • varchar

veri tipi.

Dönüş Türleri

en büyük boyutu 8.000 bayt olan varbinary.

Açıklamalar

Assimetrik anahtarlar kullanan şifreleme ve şifre çözme işlemleri önemli kaynaklar tüketir ve bu nedenle simetrik anahtar şifreleme ve şifre çözmeye kıyasla pahalı hale gelir. Geliştiricilerin, büyük veri kümelerinde asimetrik anahtar şifreleme ve şifre çözme işlemlerinden kaçınmalarını öneriyoruz - örneğin, veritabanı tablolarında depolanan kullanıcı veri setlerinde. Bunun yerine, geliştiricilerin önce bu veriyi güçlü simetrik bir anahtarla şifrelemelerini, ardından o simetrik anahtarı asimetrik bir anahtarla şifrelemelerini öneriyoruz.

Algoritmaya bağlı olarak, ENCRYPTBYASYMKEY giriş belirli bir bayt sayısını aşarsa NULL döner. Belirli sınırlar:

  • 512-bit RSA anahtarı ise 53 bayta kadar şifreleyebilir
  • 1024-bitlik bir anahtar 117 bayta kadar şifreleyebilir
  • 2048-bitlik bir anahtar 245 bayta kadar şifreleyebilir

SQL Server'da hem sertifikalar hem de asimetrik anahtarlar RSA anahtarları üzerinde wrapper olarak hizmet verir.

Örnekler

Bu örnek, asimetrik anahtarla JanainaAsymKey02depolanan @cleartext metni şifreler. Bu ifade, şifrelenmiş verileri tabloya ProtectedData04 ekler.

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

Ayrıca Bkz.

DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASİMETRİK ANAHTAR (Transact-SQL)
Şifreleme Hiyerarşisi