Compartilhar via


DECRYPTBYCERT (Transact-SQL)

Descriptografa dados com a chave privada de um certificado.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

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