Compartir a través de


DECRYPTBYASYMKEY (Transact-SQL)

Descifra datos con una clave asimétrica.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

DecryptByAsymKey (Asym_Key_ID , { 'ciphertext' | @ciphertext } 
    [ , 'Asym_Key_Password' ] )

Argumentos

  • Asym_Key_ID
    Es el identificador de una clave asimétrica en la base de datos. Asym_Key_ID es int.

  • ciphertext
    Cadena de datos cifrados con la clave asimétrica.

  • @ciphertext
    Variable de tipo varbinary que contiene datos cifrados con la clave asimétrica.

  • Asym_Key_Password
    Contraseña utilizada para cifrar la clave asimétrica en la base de datos.

Tipos de valor devueltos

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

Notas

EL cifrado/descifrado con una clave asimétrica es muy costoso si lo comparamos con el cifrado/descifrado con una clave simétrica. No es recomendable el uso de una clave asimétrica cuando trabaje con grandes conjuntos de datos, por ejemplo, datos de usuario en las tablas.

Permisos

Se requiere el permiso CONTROL sobre la clave asimétrica.

Ejemplos

En el ejemplo siguiente se descifra texto cifrado con la clave asimétrica JanainaAsymKey02, almacenada en AdventureWorks.ProtectedData04. Los datos devueltos se descifran con la clave asimétrica JanainaAsymKey02, que se ha descifrado con la contraseña pGFD4bb925DGvbd2439587y. El texto simple se convierte al tipo nvarchar.

SELECT CONVERT(nvarchar(max),
    DecryptByAsymKey( AsymKey_Id('JanainaAsymKey02'), 
    ProtectedData, N'pGFD4bb925DGvbd2439587y' )) 
AS DecryptedData 
FROM [AdventureWorks].[Sales].[ProtectedData04] 
WHERE Description = N'encrypted by asym key''JanainaAsymKey02''';
GO