ENCRYPTBYASYMKEY (transact-SQL)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance

Fungsi ini mengenkripsi data dengan kunci asimetris.

Article link iconKonvensi Sintaksis T-SQL

Sintaks

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

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

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

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

  • binary
  • char
  • nchar
  • nvarchar
  • varbinary

atau

  • varchar

jenis data.

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

  • binary
  • char
  • nchar
  • nvarchar
  • varbinary

atau

  • varchar

jenis data.

Jenis Pengembalian

varbinary, dengan ukuran maksimum 8.000 byte.

Keterangan

Operasi enkripsi dan dekripsi yang menggunakan kunci asimetris mengonsumsi 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 simetris tersebut dengan kunci asimetris.

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

  • 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

Dalam SQL Server, sertifikat dan kunci asimetris berfungsi sebagai pembungkus melalui kunci RSA.

Contoh

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

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

Lihat juga

DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
Hierarki Enkripsi