Partilhar via


DECRYPTBYPASSPHRASE (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Essa função descriptografa os dados originalmente criptografados com uma frase secreta.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

passphrase
A frase secreta usada para gerar a chave de descriptografia.

@passphrase
Uma variável do tipo char, nchar, nvarcharou varchar que contém a frase secreta usada para gerar a chave de descriptografia.

'ciphertext'
A cadeia de caracteres de dados criptografados com a chave. ciphertext tem um tipo de dados varbinary.

@ciphertext
Uma variável do tipo varbinary que contém dados criptografados com a chave. A variável ciphertext tem um tamanho máximo de 8.000 bytes.

add_authenticator
Indica se o processo de criptografia original incluía, e criptografava, um autenticador junto com o texto não criptografado. add_authenticator teria um valor de 1, se o processo de criptografia usasse um autenticador. add_authenticator tem um tipo de dados int.

@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. add_authenticator teria um valor de 1, se o processo de criptografia usasse um autenticador. @add_authenticator tem um tipo de dados int.

authenticator
Os dados usados como base para a geração do autenticador. authenticator tem um tipo de dados sysname.

@authenticator
Uma variável contendo dados usados como a base para a geração dos autenticadores. @authenticator tem um tipo de dados sysname.

Tipos de retorno

varbinary, com um tamanho máximo de 8.000 bytes.

Comentários

DECRYPTBYPASSPHRASE não requer nenhuma permissão para sua execução. DECRYPTBYPASSPHRASE retorna NULL se recebe a frase secreta errada ou as informações do autenticador erradas.

DECRYPTBYPASSPHRASE usa a frase secreta para gerar uma chave de descriptografia. Essa chave de descriptografia não será mantida.

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. 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á.

Exemplos

Este exemplo descriptografa o registro atualizado em 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  

Consulte Também

Escolher um algoritmo de criptografia
ENCRYPTBYPASSPHRASE (Transact-SQL)