ENCRYPTBYASYMKEY (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Fungsi ini mengenkripsi data dengan kunci asimetris.

Konvensi sintaks transact-SQL

Sintaksis

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

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

asym_key_ID
ID kunci asimetris dalam database. asym_key_ID memiliki jenis data int.

cleartext
String data yang ENCRYPTBYASYMKEY akan dienkripsi dengan kunci asimetris. cleartext dapat memiliki

  • biner
  • Char
  • nchar
  • nvarchar
  • varbinary

or

  • varchar

jenis data.

@plaintext
Variabel yang menyimpan nilai yang ENCRYPTBYASYMKEY akan dienkripsi dengan kunci asimetris. @plaintext dapat memiliki

  • biner
  • Char
  • nchar
  • nvarchar
  • varbinary

or

  • varchar

jenis data.

Jenis Kembalian

varbinary, dengan ukuran maksimum 8.000 byte.

Keterangan

Operasi enkripsi dan dekripsi yang menggunakan kunci asimetris menggunakan sumber daya yang signifikan, sehingga menjadi mahal dibandingkan dengan enkripsi dan dekripsi kunci konten. Kami menyarankan agar pengembang menghindari enkripsi kunci asimetris dan operasi dekripsi pada himpunan data besar - misalnya, himpunan data pengguna yang disimpan dalam tabel database. Sebagai gantinya, kami menyarankan agar pengembang terlebih dahulu mengenkripsi data tersebut dengan kunci konten yang kuat, lalu mengenkripsi kunci konten tersebut dengan kunci asimetris.

Bergantung pada algoritma, ENCRYPTBYASYMKEY mengembalikan NULL jika input melebihi jumlah byte tertentu. Batas tertentu:

  • kunci RSA 512-bit dapat mengenkripsi hingga 53 byte
  • kunci 1024-bit dapat mengenkripsi hingga 117 byte
  • kunci 2048-bit dapat mengenkripsi hingga 245 byte

Di SQL Server, sertifikat dan kunci asimetris berfungsi sebagai pembungkus atas kunci RSA.

Contoh

Contoh ini mengenkripsi teks yang disimpan @cleartext dengan kunci JanainaAsymKey02asimetris . Pernyataan menyisipkan data terenkripsi ke ProtectedData04 dalam tabel.

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

Lihat Juga

DECRYPTBYASYMKEY (Transact-SQL)
MEMBUAT KUNCI ASIMETRIS (Transact-SQL)
Hierarki Enkripsi