DECRYPTBYPASSPHRASE (Transact-SQL)
Descifra los datos que se cifraron con una frase de contraseña.
Convenciones de sintaxis de Transact-SQL
Sintaxis
DecryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )
Argumentos
passphrase
Frase de contraseña que se utilizará para generar la clave para el descifrado.@passphrase
Es una variable de tipo nvarchar, char, varchar, o nchar que contiene la frase de contraseña que se utilizará para generar la clave de descifrado.'ciphertext'
Es el texto cifrado que hay que descifrar.@ciphertext
Es una variable de tipo varbinary que contiene el texto cifrado. El tamaño máximo es 8.000 bytes.add_authenticator
Indica si se ha cifrado un autenticador junto con el texto simple. Es 1 si se ha utilizado un autenticador. int.@add\_authenticator
Indica si se ha cifrado un autenticador junto con el texto simple. Es 1 si se ha utilizado un autenticador. int.authenticator
Son los datos del autenticador. sysname.@authenticator
Es una variable que contiene los datos de los que se derivará un autenticador.
Tipos de valor devueltos
varbinary con un tamaño máximo de 8.000 bytes.
Comentarios
No es necesario ningún permiso para ejecutar esta función.
Devuelve NULL si se utiliza la información de autenticador o frase de contraseña errónea.
La frase de contraseña se utiliza para generar una clave de descifrado, que no será permanente.
Si al cifrar el texto cifrado se incluyó un autenticador, éste debe incluirse en el momento del descifrado. Si el valor del autenticador proporcionado en el momento del descifrado no coincide con el valor cifrado con los datos, se producirá un error en el descifrado.
Ejemplos
En el ejemplo siguiente se descifra el registro actualizado en EncryptByPassPhrase.
USE AdventureWorks2012;
-- 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
Vea también
Referencia
ENCRYPTBYPASSPHRASE (Transact-SQL)