Compartilhar via


ENCRYPTBYASYMKEY (Transact-SQL)

Criptografa dados com uma chave assimétrica.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )

Argumentos

  • Asym_Key_ID
    É a ID de uma chave assimétrica no banco de dados. int.

  • cleartext
    É uma cadeia de caracteres de dados que será criptografada com a chave assimétrica.

  • @plaintext
    É uma variável do tipo nvarchar, char, varchar, binary, varbinary ou nchar que contém dados a serem criptografados com a chave assimétrica.

Tipos de retorno

varbinary com um tamanho máximo de 8.000 bytes.

Comentários

A criptografia e descriptografia com uma chave assimétrica é muito dispendiosa comparada à criptografia e descriptografia com uma chave simétrica. Recomendamos que você não criptografe conjuntos de dados grandes, como dados de usuário em tabelas, usando uma chave assimétrica. Em vez disso, criptografe os dados usando uma chave simétrica forte e criptografe a chave simétrica usando uma chave assimétrica.

EncryptByAsymKey retornará NULL se a entrada exceder certo número de bytes, dependendo do algoritmo. Os limites são: uma chave RSA de 512 bits pode criptografar até 53 bytes, uma chave de 1024 bits pode criptografar até 117 bytes, e uma chave de 2048 bits pode criptografar até 245 bytes. (Observe que no SQL Server, certificados e chaves assimétricas são wrappers sobre chaves RSA.)

Exemplos

O exemplo a seguir criptografa o texto armazenado em @cleartext com a chave assimétrica JanainaAsymKey02. Os dados criptografados são inseridos na tabela ProtectedData04.

INSERT INTO AdventureWorks2012.Sales.ProtectedData04 
    VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',
    EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );
GO

Consulte também

Referência

DECRYPTBYASYMKEY (Transact-SQL)

CREATE ASYMMETRIC KEY (Transact-SQL)

Conceitos

Hierarquia de criptografia