DECRYPTBYCERT (Transact-SQL)
Descriptografa dados com a chave particular 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 particular 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 particular 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 particular 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 [AdventureWorks].[ProtectedData04] marcadas como data encrypted by certificate JanainaCert02. O exemplo descriptografa o texto cifrado com a chave particular 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 [AdventureWorks].[ProtectedData04]
WHERE Description
= N'data encrypted by certificate '' JanainaCert02''';
GO