DECRYPTBYPASSPHRASE (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Esta función descifra los datos que se cifraron originalmente con una frase de contraseña.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

passphrase
La frase de contraseña que se usa para generar la clave de descifrado.

@passphrase
Variable de tipo char, nchar, nvarchar o varchar que contiene la frase de contraseña que se usa para generar la clave de descifrado.

'ciphertext'
La cadena de datos cifrados con la clave. ciphertext tiene un tipo de datos varbinary.

@ciphertext
Una variable de tipo varbinary que contiene los datos cifrados con la clave. La variable @ciphertext tiene un tamaño máximo de 8000 bytes.

add_authenticator
Indica si el proceso de cifrado original incluía, y cifraba, un autenticador junto con el texto sin formato. add_authenticator tiene un valor de 1 si el proceso de cifrado usó un autenticador. add_authenticator tiene un tipo de datos int.

@add_authenticator
Una variable que indica si el proceso de cifrado original incluía, y cifraba, un autenticador junto con el texto sin formato. @add_authenticator tiene un valor de 1 si el proceso de cifrado ha usado un autenticador. @add_authenticator tiene un tipo de datos int.

authenticator
Los datos que se usaron como base para la generación del autenticador. autenticador tiene un tipo de datos sysname.

@authenticator
Una variable que contiene los datos que se usaron como base para la generación de los autenticadores. @authenticator tiene un tipo de datos sysname.

Tipos de valor devuelto

varbinary, con un tamaño máximo de 8 000 bytes.

Observaciones

DECRYPTBYPASSPHRASE no requiere permisos para su ejecución. DECRYPTBYPASSPHRASE devuelve NULL si se recibe la frase de contraseña o información de autenticador erróneas.

DECRYPTBYPASSPHRASE usa la frase de contraseña para generar una clave de descifrado. Esta clave de descifrado no se conservará.

Si se incluyó un autenticador en el momento de cifrar el texto cifrado, DECRYPTBYPASSPHRASE debe recibir ese mismo autenticador para el proceso de descifrado. Si el valor del autenticador proporcionado para el proceso de descifrado no coincide con el valor del autenticador que se usó originalmente para cifrar los datos, se producirá un error en la operación DECRYPTBYPASSPHRASE.

Ejemplos

En este ejemplo se descifra el registro actualizado en 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 también

Elegir un algoritmo de cifrado
ENCRYPTBYPASSPHRASE (Transact-SQL)