ENCRYPTBYCERT (Transact-SQL)

Crittografa dati con la chiave pubblica di un certificato.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

EncryptByCert ( certificate_ID , { 'cleartext' | @cleartext } )

Argomenti

  • certificate_ID
    ID di un certificato nel database. int.

  • cleartext
    Stringa di dati che verrà crittografata con il certificato.

  • @cleartext
    Variabile di tipo nvarchar, char, varchar, binary, varbinary o nchar contenente dati da crittografare con la chiave pubblica del certificato.

Tipi restituiti

varbinary con dimensioni massime pari a 8.000 byte.

Osservazioni

Questa funzione crittografa dati con la chiave pubblica di un certificato. Il testo crittografato può essere decrittografato solo con la chiave privata corrispondente. Queste trasformazioni asimmetriche sono molto onerose a livello di risorse rispetto alla crittografia e alla decrittografia con una chiave simmetrica. La crittografia asimmetrica non è pertanto consigliabile in caso di utilizzo di set di dati di grandi dimensioni, ad esempio i dati utente nelle tabelle.

Esempi

Nell'esempio seguente il testo normale archiviato in @cleartext viene crittografato con il certificato denominato JanainaCert02. I dati crittografati vengono quindi inseriti nella tabella ProtectedData04.

INSERT INTO [AdventureWorks].[ProtectedData04] 
    values( N'data encrypted by certificate ''Shipping04''',
    EncryptByCert(Cert_ID('JanainaCert02'), @cleartext) );
GO