Compartir a través de


DECRYPTBYPASSPHRASE (Transact-SQL)

Descifra los datos que se cifraron con una frase de contraseña.

Icono de vínculo a temas 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)

Conceptos

Elegir un algoritmo de cifrado