DECRYPTBYPASSPHRASE (Transact-SQL)
Descriptografa dados que foram criptografados com uma senha.
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
Consulte também