Delen via


DECRYPTBYPASSPHRASE (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Deze functie ontsleutelt gegevens die oorspronkelijk met een wachtwoord zijn versleuteld.

Transact-SQL syntaxis-conventies

Syntaxis

DecryptByPassPhrase ( { 'passphrase' | @passphrase }   
    , { 'ciphertext' | @ciphertext }  
  [ , { add_authenticator | @add_authenticator }  
    , { authenticator | @authenticator } ] )  

Arguments

Wachtwoord
De wachtwoordzin die wordt gebruikt om de decryptiesleutel te genereren.

@passphrase
Een variabele van het type char, nchar, nvarchar of varchar die de wachtwoordzin bevat die werd gebruikt om de decryptiesleutel te genereren.

'coderingstekst'
De tekenreeks met gegevens die zijn versleuteld met de sleutel. ciphertext heeft een varbinary-gegevenstype .

@ciphertext
Een variabele van het type varbinary die gegevens bevat die zijn versleuteld met de sleutel. De @ciphertext variabele heeft een maximale grootte van 8.000 bytes.

add_authenticator
Geeft aan of het oorspronkelijke versleutelingsproces is opgenomen en versleuteld, een verificator samen met de tekst zonder opmaak. add_authenticator heeft de waarde 1 als het versleutelingsproces een verificator heeft gebruikt. add_authenticator heeft een gegevenstype int .

@add_authenticator
Een variabele die aangeeft of het oorspronkelijke versleutelingsproces is opgenomen en versleuteld, een verificator samen met de tekst zonder opmaak. Is @add_authenticator een waarde van 1 heeft als het encryptieproces een authenticator gebruikte. @add_authenticator heeft een gegevenstype int .

Verificator
De gegevens die worden gebruikt als basis voor het genereren van de verificator. authenticator heeft een sysname-gegevenstype .

@authenticator
Een variabele met gegevens die als basis diende voor het genereren van de authenticators. @authenticator heeft een sysname-gegevenstype .

Retourtypen

varbinary, met een maximale grootte van 8.000 bytes.

Opmerkingen

DECRYPTBYPASSPHRASE vereist geen rechten voor de uitvoering ervan. DECRYPTBYPASSPHRASE geeft NULL terug als het de verkeerde toegangszin of de verkeerde authenticatorinformatie ontvangt.

DECRYPTBYPASSPHRASE gebruikt de wachtwoordzin om een ontsleutelsleutel te genereren. Deze decryptiesleutel blijft niet behouden.

Als er op het moment van de ciphertext-encryptie een authenticator aanwezig was, DECRYPTBYPASSPHRASE moet diezelfde authenticator ontvangen voor het ontsleutelingsproces. Als de authenticatorwaarde die voor het ontsleutelingsproces is verstrekt niet overeenkomt met de authenticatorwaarde die oorspronkelijk is gebruikt om de data te versleutelen, zal de DECRYPTBYPASSPHRASE operatie mislukken.

Voorbeelden

Dit voorbeeld ontsleutelt het record dat is bijgewerkt in EncryptByPassPhrase.

USE AdventureWorks2022;  
-- Get the passphrase from the user.  
DECLARE @PassphraseEnteredByUser NVARCHAR(128);  
SET @PassphraseEnteredByUser   
= 'A little learning is a dangerous thing!';  
  
-- Decrypt the encrypted record.  
SELECT CardNumber, CardNumber_EncryptedbyPassphrase   
    AS 'Encrypted card number', CONVERT(varchar,  
    DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1   
    , CONVERT(varbinary, CreditCardID)))  
    AS 'Decrypted card number' FROM Sales.CreditCard   
    WHERE CreditCardID = '3681';  
GO  

Zie ook

Een versleutelingsalgoritmen kiezen
ENCRYPTBYPASSPHRASE (Transact-SQL)