Condividi tramite


ENCRYPTBYPASSPHRASE (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Esegue la crittografia dei dati con una passphrase, usando l'algoritmo TRIPLE DES con una lunghezza della chiave pari a 128 bit.

Nota

SQL Server 2017 e versioni successive crittografa i dati con una passphrase usando una chiave AES256.

Convenzioni relative alla 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 un valore massimo di 8.000 byte.

Osservazioni:

Una passphrase è una password contenente spazi. Il vantaggio dell'uso 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, usando la chiave primaria come autenticatore.

USE AdventureWorks2022;  
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  

Vedi anche

DECRYPTBYPASSPHRASE (Transact-SQL)
Gerarchia di crittografia