DECRYPTBYCERT (Transact-SQL)
Descriptografa dados com a chave privada de um certificado.
Sintaxe
DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }
[ , { 'cert_password' | @cert_password } ] )
Argumentos
certificate_ID
É a ID de um certificado no banco de dados. certificate_ID é int.ciphertext
É uma cadeia de dados que foi criptografada com a chave pública do certificado.@ciphertext
É uma variável do tipo varbinary que contém dados criptografados com o certificado.cert_password
É a senha que foi usada para criptografar a chave privada do certificado. Deve ser Unicode.@cert_password
Uma variável do tipo nchar ou nvarchar que contém a senha usada para criptografar a chave privada do certificado. Deve ser Unicode.
Tipos de retorno
varbinary com um tamanho máximo de 8.000 bytes.
Comentários
Essa função descriptografa dados com a chave privada de um certificado. As transformações criptográficas que usam chaves assimétricas consomem recursos significativos. Portanto, EncryptByCert e DecryptByCert não são adequados para a criptografia de rotina de dados de usuário.
Permissões
Requer a permissão CONTROL no certificado.
Exemplos
O exemplo a seguir seleciona linhas de [AdventureWorks2008R2].[ProtectedData04] marcadas como data encrypted by certificate JanainaCert02. O exemplo descriptografa o texto cifrado com a chave privada do certificado JanainaCert02, que ele primeiro descriptografa com a senha do certificado, pGFD4bb925DGvbd2439587y. Os dados descriptografados são convertidos de varbinary em nvarchar.
SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks2008R2].[ProtectedData04]
WHERE Description
= N'data encrypted by certificate '' JanainaCert02''';
GO