DECRYPTBYCERT (Transact-SQL)
Descifra datos con la clave privada de un certificado.
Sintaxis
DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }
[ , { 'cert_password' | @cert_password } ] )
Argumentos
certificate_ID
Es el identificador de un certificado de la base de datos. El valor de certificate_ID es int.ciphertext
Es una cadena de datos que se ha cifrado con la clave pública del certificado.@ciphertext
Es una variable de tipo varbinary que contiene los datos que se han cifrado con el certificado.cert_password
Es la contraseña utilizada para cifrar la clave privada del certificado. Debe ser Unicode.@cert_password
Es una variable de tipo nchar o nvarchar que contiene la contraseña usada para cifrar la clave privada del certificado. Debe ser Unicode.
Tipos de valor devueltos
varbinary con un tamaño máximo de 8.000 bytes.
Comentarios
Esta función descifra datos con la clave privada de un certificado. Las transformaciones cifradas que utilizan claves asimétricas consumen gran cantidad de recursos. Por tanto, EncryptByCert y DecryptByCert no resultan adecuados para el cifrado rutinario de datos de usuario.
Permisos
Requiere el permiso CONTROL en el certificado.
Ejemplos
En el ejemplo siguiente se seleccionan filas de [AdventureWorks2008R2].[ProtectedData04] marcadas como data encrypted by certificate JanainaCert02. En el ejemplo se descifra el texto cifrado con la clave privada del certificado JanainaCert02, que se descifra previamente con la contraseña del certificado, pGFD4bb925DGvbd2439587y. Los datos descifrados se convierten de varbinary en nvarchar.
SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks2008R2].[ProtectedData04]
WHERE Description
= N'data encrypted by certificate '' JanainaCert02''';
GO