ENCRYPTBYASYMKEY (Transact-SQL)ENCRYPTBYASYMKEY (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Essa função criptografa dados com uma chave assimétrica.This function encrypts data with an asymmetric key.

Ícone de link do artigo Convenções de sintaxe do Transact-SQLArticle link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

ArgumentosArguments

asym_key_IDasym_key_ID
A ID de uma chave assimétrica no banco de dados.The ID of an asymmetric key in the database. asym_key_ID tem um tipo de dados int.asym_key_ID has an int data type.

cleartextcleartext
Um cadeia de caracteres de dados que ENCRYPTBYASYMKEY criptografará com a chave assimétrica.A string of data that ENCRYPTBYASYMKEY will encrypt with the asymmetric key. texto não criptografado pode ter umcleartext can have a

  • binarybinary
  • charchar
  • ncharnchar
  • nvarcharnvarchar
  • varbinaryvarbinary

ou emor

  • varcharvarchar

tipo de dados.data type.

@plaintext@plaintext
Uma variável que contém um valor que ENCRYPTBYASYMKEY criptografará com a chave assimétrica.A variable holding a value that ENCRYPTBYASYMKEY will encrypt with the asymmetric key. @plaintext pode ter um@plaintext can have a

  • binarybinary
  • charchar
  • ncharnchar
  • nvarcharnvarchar
  • varbinaryvarbinary

ou emor

  • varcharvarchar

tipo de dados.data type.

Tipos de retornoReturn Types

varbinary, com um tamanho máximo de 8.000 bytes.varbinary, with a maximum size of 8,000 bytes.

RemarksRemarks

Operações de criptografia e descriptografia que usam chaves assimétricas consomem recursos significativos e, portanto, tornam-se caras quando comparadas à descriptografia e criptografia de chave simétrica.Encryption and decryption operations that use asymmetric keys consume significant resources, and so become expensive compared with symmetric key encryption and decryption. Sugerimos que os desenvolvedores evitem operações de criptografia e de descriptografia de chave assimétrica ao trabalharem com grandes conjuntos de dados, por exemplo, conjuntos de dados do usuário armazenados em tabelas de banco de dados.We suggest that developers avoid asymmetric key encryption and decryption operations on large datasets - for example, user data datasets stored in database tables. Em vez disso, sugerimos que os desenvolvedores primeiro criptografem dados com uma chave simétrica forte e, em seguida, criptografem a chave simétrica com uma chave assimétrica.Instead, we suggest that developers first encrypt that data with a strong symmetric key, and then encrypt that symmetric key with an asymmetric key.

Dependendo do algoritmo, ENCRYPTBYASYMKEY retorna NULL se a entrada excede um certo número de bytes.Depending on the algorithm, ENCRYPTBYASYMKEY returns NULL if the input exceeds a certain number of bytes. Os limites específicos:The specific limits:

  • uma chave RSA de 512 bits pode criptografar até 53 bytesa 512-bit RSA key can encrypt up to 53 bytes
  • uma chave RSA de 1024 bits pode criptografar até 117 bytesa 1024-bit key can encrypt up to 117 bytes
  • uma chave RSA de 2048 bits pode criptografar até 245 bytesa 2048-bit key can encrypt up to 245 bytes

No SQL ServerSQL Server, tanto certificados quanto chaves assimétricas servem como wrappers sobre chaves RSA.In SQL ServerSQL Server, both certificates and asymmetric keys serve as wrappers over RSA keys.

ExemplosExamples

Este exemplo criptografa o texto armazenado em @cleartext com a chave assimétrica JanainaAsymKey02.This example encrypts the text stored in @cleartext with the asymmetric key JanainaAsymKey02. A instrução insere os dados criptografados na tabela ProtectedData04.The statement inserts the encrypted data into the ProtectedData04 table.

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

Consulte TambémSee Also

DECRYPTBYASYMKEY (Transact-SQL) DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL) CREATE ASYMMETRIC KEY (Transact-SQL)
Hierarquia de criptografiaEncryption Hierarchy