DECRYPTBYPASSPHRASE (Transact-SQL)DECRYPTBYPASSPHRASE (Transact-SQL)

Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) SimBanco de Dados SQL do AzureAzure SQL DatabaseYesBanco de Dados SQL do AzureAzure SQL DatabaseAplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) SimBanco de Dados SQL do AzureAzure SQL DatabaseYesBanco de Dados SQL do AzureAzure SQL Database

Essa função descriptografa os dados originalmente criptografados com uma frase secreta.This function decrypts data originally encrypted with a passphrase.

Ícone de link do tópico Convenções da sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumentosArguments

passphrasepassphrase
A frase secreta usada para gerar a chave de descriptografia.The passphrase used to generate the decryption key.

@passphrase
Uma variável do tipo char, nchar, nvarcharou varchar que contém a frase secreta usada para gerar a chave de descriptografia.A variable of type char, nchar, nvarchar, or varchar containing the passphrase used to generate the decryption key.

'ciphertext''ciphertext'
A cadeia de caracteres de dados criptografados com a chave.The string of data encrypted with the key. ciphertext tem um tipo de dados varbinary.ciphertext has a varbinary data type.

@ciphertext
Uma variável do tipo varbinary que contém dados criptografados com a chave.A variable of type varbinary containing data encrypted with the key. A variável @ciphertext tem um tamanho máximo de 8.000 bytes.The @ciphertext variable has a maximum size of 8,000 bytes.

add_authenticatoradd_authenticator
Indica se o processo de criptografia original incluía, e criptografava, um autenticador junto com o texto não criptografado.Indicates whether the original encryption process included, and encrypted, an authenticator together with the plaintext. add_authenticator teria um valor de 1, se o processo de criptografia usasse um autenticador.add_authenticator has a value of 1 if the encryption process used an authenticator. add_authenticator tem um tipo de dados int.add_authenticator has an int data type.

@add_authenticator
Uma variável que indica se o processo de criptografia original incluía, e criptografava, um autenticador junto com o texto não criptografado.A variable indicating whether the original encryption process included, and encrypted, an authenticator together with the plaintext. @add_authenticator teria um valor de 1, se o processo de criptografia usasse um autenticador.Is @add_authenticator has a value of 1 if the encryption process used an authenticator. @add_authenticator tem um tipo de dados int.@add_authenticator has an int data type.

authenticatorauthenticator
Os dados usados como base para a geração do autenticador.The data used as the basis for the generation of the authenticator. authenticator tem um tipo de dados sysname.authenticator has a sysname data type.

@authenticator
Uma variável contendo dados usados como a base para a geração dos autenticadores.A variable containing data used as the basis for the generation of the authenticators. @authenticator tem um tipo de dados sysname.@authenticator has a sysname data type.

Tipos de retornoReturn Types

varbinary, com um tamanho máximo de 8.000 bytes.varbinary, with a maximum size of 8,000 bytes.

ComentáriosRemarks

DECRYPTBYPASSPHRASE não requer nenhuma permissão para sua execução.DECRYPTBYPASSPHRASE requires no permissions for its execution. DECRYPTBYPASSPHRASE retorna NULL se recebe a frase secreta errada ou as informações do autenticador erradas.DECRYPTBYPASSPHRASE returns NULL if it receives the wrong passphrase or the wrong authenticator information.

DECRYPTBYPASSPHRASE usa a frase secreta para gerar uma chave de descriptografia.DECRYPTBYPASSPHRASE uses the passphrase to generate a decryption key. Essa chave de descriptografia não será mantida.This decryption key will not persist.

Se um autenticador tiver sido incluído no momento da criptografia de texto cifrado, DECRYPTBYPASSPHRASE precisará receber esse mesmo autenticador para o processo de descriptografia.If an authenticator was included at the time of the ciphertext encryption, DECRYPTBYPASSPHRASE must receive that same authenticator for the decryption process. Se o valor do autenticador fornecido para o processo de descriptografia não corresponder ao valor do autenticador originalmente usado para criptografar os dados, a operação DECRYPTBYPASSPHRASE falhará.If the authenticator value provided for the decryption process does not match the authenticator value originally used to encrypted the data, the DECRYPTBYPASSPHRASE operation will fail.

ExemplosExamples

Este exemplo descriptografa o registro atualizado em EncryptByPassPhrase.This example decrypts the record updated in EncryptByPassPhrase.

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

Consulte TambémSee Also

Escolher um algoritmo de criptografia Choose an Encryption Algorithm
ENCRYPTBYPASSPHRASE (Transact-SQL)ENCRYPTBYPASSPHRASE (Transact-SQL)