Share via


DECRYPTBYPASSPHRASE (Transact-SQL)

Descriptografa dados que foram criptografados com uma senha.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • passphrase
    É a senha que será usada para gerar a chave para descriptografia.

  • @passphrase
    É uma variável do tipo nvarchar, char, varchar ou nchar que contém a senha que será usada para gerar a chave para descriptografia.

  • 'ciphertext'
    É o texto cifrado a ser descriptografado.

  • @ciphertext
    É uma variável do tipo varbinary que contém o texto cifrado. O tamanho máximo é 8.000 bytes.

  • add_authenticator
    Indica se um autenticador foi criptografado junto com o texto não criptografado. É 1 se um autenticador tiver sido usado. int.

  • @add_authenticator
    Indica se um autenticador foi criptografado junto com o texto não criptografado. É 1 se um autenticador tiver sido usado. int.

  • authenticator
    São os dados do autenticador. sysname.

  • @authenticator
    É uma variável que contém dados a partir dos quais o autenticador será derivado.

Tipos de retorno

varbinary com um tamanho máximo de 8.000 bytes.

Comentários

Nenhuma permissão é necessária para executar esta função.

Retorna NULL se a senha errada ou informações do autenticador é usada.

A senha é usada para gerar uma chave de descriptografia, que não será persistida.

Se um autenticador tiver sido incluído que quando o texto cifrado foi criptografado, o autenticador deve ser fornecido no momento da descriptografia. Se o valor do autenticador fornecido no momento da descriptografia não coincidir com o valor criptografado com os dados, a descriptografia falhará.

Exemplos

O exemplo a seguir descriptografa o registro atualizado em EncryptByPassPhrase.

USE AdventureWorks2008R2;
-- Get the pass phrase 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(nvarchar,
    DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1 
    , CONVERT(varbinary, CreditCardID)))
    AS 'Decrypted card number' FROM Sales.CreditCard 
    WHERE CreditCardID = '3681';
GO