DECRYPTBYCERT (Transact-SQL)
Decrittografa dati tramite la chiave privata di un certificato.
Sintassi
DecryptByCert (certificate_ID , { 'ciphertext' | @ciphertext }
[ , { 'cert_password' | @cert_password } ] )
Argomenti
certificate_ID
ID di un certificato nel database. certificate_ID è di tipo int.ciphertext
Stringa di dati crittografata tramite la chiave pubblica del certificato.@ciphertext
Variabile di tipo varbinary contenente dati crittografati tramite il certificato.cert_password
Password utilizzata per crittografare la chiave privata del certificato. Deve essere Unicode.@cert_password
Variabile di tipo nchar o nvarchar contenente la password utilizzata per crittografare la chiave privata del certificato. Deve essere Unicode.
Tipi restituiti
varbinary con un valore massimo di 8.000 byte.
Osservazioni
Questa funzione decrittografa dati tramite la chiave privata di un certificato. Le trasformazioni di crittografia tramite chiavi asimmetriche richiedono una quantità elevata di risorse. Di conseguenza, EncryptByCert e DecryptByCert non sono adatte per le normali procedure di crittografia di dati utente.
Autorizzazioni
È richiesta l'autorizzazione CONTROL per il certificato.
Esempi
Nell'esempio seguente vengono selezionate le righe presenti in [AdventureWorks].[ProtectedData04] contrassegnate come data encrypted by certificate JanainaCert02 e viene decrittografato il testo crittografato tramite la chiave privata del certificato JanainaCert02, di cui viene prima eseguita la decrittografia tramite la password pGFD4bb925DGvbd2439587y del certificato. I dati decrittografati vengono convertiti da varbinary a nvarchar.
SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks].[ProtectedData04]
WHERE Description
= N'data encrypted by certificate '' JanainaCert02''';
GO