Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

DecryptByKey (Transact-SQL)

Descifra datos utilizando una clave simétrica.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL


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

ciphertext

Son los datos que se han cifrado con la clave. varbinary.

@ciphertext

Es una variable de tipo varbinary que contiene los datos que se han cifrado con la clave.

add_authenticator

Indica si se ha cifrado un autenticador junto con el texto simple. Debe ser el mismo valor pasado a EncryptByKey cuando se cifraron los datos. int.

authenticator

Son los datos de los que se generará un autenticador. Debe coincidir con el valor que se proporcionó para EncryptByKey. sysname.

@authenticator

Es una variable que contiene los datos a partir de los cuales se generará un autenticador. Debe coincidir con el valor que se proporcionó para EncryptByKey.

varbinary con un tamaño máximo de 8.000 bytes.

DecryptByKey utiliza una clave simétrica. La clave simétrica ya debe estar abierta en la base de datos. Puede haber varias claves abiertas a la vez. No tiene que abrir la clave inmediatamente antes de descifrar el texto cifrado.

El cifrado y descifrado simétrico es relativamente rápido y se puede adaptar para trabajar con grandes cantidades de datos.

A. Descifrar utilizando una clave simétrica

En el siguiente ejemplo se descifra texto cifrado utilizando una clave simétrica.

-- First, open the symmetric key with which to decrypt the data.
OPEN SYMMETRIC KEY SSN_Key_01
   DECRYPTION BY CERTIFICATE HumanResources037;
GO

-- Now list the original ID, the encrypted ID, and the 
-- decrypted ciphertext. If the decryption worked, the original
-- and the decrypted ID will match.
SELECT NationalIDNumber, EncryptedNationalID 
    AS 'Encrypted ID Number',
    CONVERT(nvarchar, DecryptByKey(EncryptedNationalID)) 
    AS 'Decrypted ID Number'
    FROM HumanResources.Employee;
GO

B. Descifrar utilizando una clave simétrica y un hash de autenticación

En el siguiente ejemplo se descifran datos que se cifraron mediante un autenticador.

-- First, open the symmetric key with which to decrypt the data
OPEN SYMMETRIC KEY CreditCards_Key11
   DECRYPTION BY CERTIFICATE Sales09;
GO

-- Now list the original card number, the encrypted card number,
-- and the decrypted ciphertext. If the decryption worked, 
-- the original number will match the decrypted number.
SELECT CardNumber, CardNumber_Encrypted 
    AS 'Encrypted card number', CONVERT(nvarchar,
    DecryptByKey(CardNumber_Encrypted, 1 , 
    HashBytes('SHA1', CONVERT(varbinary, CreditCardID)))) 
    AS 'Decrypted card number' FROM Sales.CreditCard;
GO

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft