ENCRYPTBYPASSPHRASE (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Kryptera data med en lösenfras med hjälp av TRIPLE DES-algoritmen med en bit på 128 nyckelr.

Anmärkning

SQL Server 2017 och senare versioner krypterar data med en lösenfras med en AES256-nyckel.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

Lösenfras
En lösenfras för att generera en symmetrisk nyckel.

@passphrase
En variabel av typen nvarchar, char, varchar, binär, varbinär eller nchar som innehåller en lösenfras för att generera en symmetrisk nyckel.

Klartext
Klartexten ska krypteras.

@cleartext
En variabel av typen nvarchar, char, varchar, binär, varbinär eller nchar som innehåller klartexten. Maxstorleken är 8 000 byte.

add_authenticator
Anger om en autentisator kommer att krypteras tillsammans med klartexten. 1 om en autentiserare kommer att läggas till. int.

@add_authenticator
Anger om en hash kommer att krypteras tillsammans med klartexten.

autentiserare
Data som man kan härleda en autentisator från. Sysname.

@authenticator
En variabel som innehåller data från vilken man kan härleda en autentisator.

Returtyper

varbinär med maximal storlek på 8 000 byte.

Anmärkningar

En lösenfras är ett lösenord som inkluderar mellanslag. Fördelen med att använda en lösenfras är att det är lättare att komma ihåg en meningsfull fras eller mening än att minnas en lika lång teckenkedja.

Denna funktion kontrollerar inte lösenordets komplexitet.

Examples

Följande exempel uppdaterar en post i SalesCreditCard tabellen och krypterar värdet på kreditkortsnumret som lagras i kolumnen CardNumber_EncryptedbyPassphrase, med primärnyckeln som autentisering.

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  

Se även

DEKRYPTERINGSBYPASSFRAS (Transact-SQL)
Krypteringshierarki