ENCRYPTBYASYMKEY (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Essa função criptografa dados com uma chave assimétrica.
Convenções de sintaxe de Transact-SQL
Sintaxe
EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )
Argumentos
asym_key_ID
A ID de uma chave assimétrica no banco de dados. asym_key_ID tem um tipo de dados int.
cleartext
Um cadeia de caracteres de dados que ENCRYPTBYASYMKEY
criptografará com a chave assimétrica. texto não criptografado pode ter um
- binary
- char
- nchar
- nvarchar
- varbinary
ou
- varchar
tipo de dados.
@plaintext
Uma variável que contém um valor que ENCRYPTBYASYMKEY
criptografará com a chave assimétrica. @plaintext pode ter um
- binary
- char
- nchar
- nvarchar
- varbinary
ou
- varchar
tipo de dados.
Tipos de retorno
varbinary, com um tamanho máximo de 8.000 bytes.
Comentários
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. 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. 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.
Dependendo do algoritmo, ENCRYPTBYASYMKEY
retorna NULL se a entrada excede um certo número de bytes. Os limites específicos:
- uma chave RSA de 512 bits pode criptografar até 53 bytes
- uma chave RSA de 1024 bits pode criptografar até 117 bytes
- uma chave RSA de 2048 bits pode criptografar até 245 bytes
No SQL Server, tanto certificados quanto chaves assimétricas servem como wrappers sobre chaves RSA.
Exemplos
Este exemplo criptografa o texto armazenado em @cleartext
com a chave assimétrica JanainaAsymKey02
. A instrução insere os dados criptografados na tabela ProtectedData04
.
INSERT INTO AdventureWorks2022.Sales.ProtectedData04
VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',
EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );
GO
Consulte Também
DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
Hierarquia de criptografia