Condividi tramite


ENCRYPTBYPASSPHRASE (Transact-SQL)

Crittografa i dati con una passphrase.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

EncryptByPassPhrase ( { 'passphrase' | @passphrase } 
        , { 'cleartext' | @cleartext }
    [ , { add_authenticator | @add_authenticator }
        , { authenticator | @authenticator } ] )

Argomenti

  • passphrase
    Passphrase dalla quale generare una chiave simmetrica.

  • @passphrase
    Variabile di tipo nvarchar, char, varchar, binary, varbinary, o nchar contenente una passphrase da cui generare una chiave simmetrica.

  • cleartext
    Testo non crittografato da crittografare.

  • @cleartext
    Variabile di tipo nvarchar, char, varchar, binary, varbinary o nchar contenente il testo non crittografato. Le dimensioni massime sono pari a 8.000 byte.

  • add_authenticator
    Indica se un autenticatore verrà crittografato insieme al testo non crittografato. 1 se verrà aggiunto un autenticatore. int.

  • @add_authenticator
    Indica se un hash verrà crittografato insieme al testo non crittografato.

  • authenticator
    Dati da cui derivare un autenticatore. sysname.

  • @authenticator
    Variabile contenente i dati dai quali derivare un autenticatore.

Tipi restituiti

varbinary con dimensioni massime pari a 8.000 byte.

Osservazioni

Una passphrase è una password contenente spazi. Il vantaggio dell'utilizzo di una passphrase consiste nel fatto che è più facile ricordare una frase significativa che una stringa di caratteri di pari lunghezza.

Questa funzione non controlla la complessità delle password.

Esempi

Nell'esempio seguente viene aggiornato un record della tabella SalesCreditCard e viene crittografato il valore del numero della carta di credito archiviato nella colonna CardNumber_EncryptedbyPassphrase, utilizzando la chiave primaria come autenticatore.

USE AdventureWorks;
GO
-- Create a column in which to store the encrypted data.
ALTER TABLE Sales.CreditCard 
    ADD CardNumber_EncryptedbyPassphrase varbinary(256); 
GO
-- First get the passphrase from the user.
DECLARE @PassphraseEnteredByUser nvarchar(128);
SET @PassphraseEnteredByUser 
    = 'A little learning is a dangerous thing!';

-- Update the record for the user's credit card.
-- In this case, the record is number 3681.
UPDATE Sales.CreditCard
SET CardNumber_EncryptedbyPassphrase = EncryptByPassPhrase(@PassphraseEnteredByUser
    , CardNumber, 1, CONVERT( varbinary, CreditCardID))
WHERE CreditCardID = '3681';
GO