Bagikan melalui


DECRYPTBYCERT (Transact-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Fungsi ini menggunakan kunci privat sertifikat untuk mendekripsi data terenkripsi.

Konvensi sintaks transact-SQL

Sintaks

DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }   
    [ , { 'cert_password' | @cert_password } ] )  

Argumen

certificate_ID
ID sertifikat dalam database. certificate_ID memiliki jenis data int.

Ciphertext
String data yang dienkripsi dengan kunci publik sertifikat.

@ciphertext
Variabel jenis varbinary yang berisi data yang dienkripsi dengan sertifikat.

cert_password
Kata sandi yang digunakan untuk mengenkripsi kunci privat sertifikat. cert_password harus memiliki format data Unicode.

@cert_password
Variabel jenis nchar atau nvarchar yang berisi kata sandi yang digunakan untuk mengenkripsi kunci privat sertifikat. @cert_password harus memiliki format data Unicode.

Jenis Kembalian

varbinary, dengan ukuran maksimum 8.000 byte.

Keterangan

Fungsi ini mendekripsi data dengan kunci privat sertifikat. Transformasi kriptografi yang menggunakan kunci asimetris menggunakan sumber daya yang signifikan. Oleh karena itu, kami menyarankan agar pengembang menghindari penggunaan ENCRYPTBYCERT dan DECRYPTBYCERT untuk enkripsi/dekripsi data pengguna rutin.

Izin

DECRYPTBYCERT memerlukan izin CONTROL pada sertifikat.

Contoh

Contoh ini memilih baris dari [AdventureWorks2022].[ProtectedData04] ditandai sebagai data yang awalnya dienkripsi oleh sertifikat JanainaCert02. Contoh pertama-tama mendekripsi kunci privat sertifikat JanainaCert02 dengan kata sandi sertifikat pGFD4bb925DGvbd2439587y. Kemudian, contoh mendekripsi ciphertext dengan kunci privat ini. Contoh mengonversi data yang didekripsi dari varbinary ke nvarchar.

SELECT CONVERT(NVARCHAR(max), DecryptByCert(Cert_Id('JanainaCert02'),  
    ProtectedData, N'pGFD4bb925DGvbd2439587y'))  
FROM [AdventureWorks2022].[ProtectedData04]   
WHERE Description   
    = N'data encrypted by certificate '' JanainaCert02''';  
GO  

Lihat Juga

ENCRYPTBYCERT (T-SQL)
BUAT SERTIFIKAT (Transact-SQL)
UBAH SERTIFIKAT (Transact-SQL)
HILANGKAN SERTIFIKAT (T-SQL)
SERTIFIKAT CADANGAN (Transact-SQL)
Hierarki Enkripsi