ENCRYPTBYASYMKEY (transact-SQL)
Berlaku untuk: SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Fungsi ini mengenkripsi data dengan kunci asimetris.
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 JanainaAsymKey02
asimetris . 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