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

Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) SíAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL DatabaseSe aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) SíAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database

Esta función cifra los datos con una clave asimétrica.This function encrypts data with an asymmetric key.

Icono de vínculo de artículo Convenciones de sintaxis de Transact-SQLArticle link icon Transact-SQL Syntax Conventions

SintaxisSyntax

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

Nota

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumentosArguments

asym_key_IDasym_key_ID
Id. de una clave asimétrica en la base de datos.The ID of an asymmetric key in the database. asym_key_ID tiene un tipo de datos int.asym_key_ID has an int data type.

cleartextcleartext
Cadena de datos que ENCRYPTBYASYMKEY cifrará con la clave asimétrica.A string of data that ENCRYPTBYASYMKEY will encrypt with the asymmetric key. cleartext puede tener un tipo decleartext can have a

  • binarybinary
  • charchar
  • ncharnchar
  • nvarcharnvarchar
  • varbinaryvarbinary

o bienor

  • varcharvarchar

datos.data type.

@plaintext@plaintext
Una variable que contiene un valor que ENCRYPTBYASYMKEY cifrará con la clave asimétrica.A variable holding a value that ENCRYPTBYASYMKEY will encrypt with the asymmetric key. @plaintext puede tener un@plaintext can have a

  • binarybinary
  • charchar
  • ncharnchar
  • nvarcharnvarchar
  • varbinaryvarbinary

o bienor

  • varcharvarchar

datos.data type.

Tipos de valor devueltoReturn Types

varbinary, con un tamaño máximo de 8 000 bytes.varbinary, with a maximum size of 8,000 bytes.

ObservacionesRemarks

Las operaciones de cifrado y descifrado en las que se usan claves asimétricas consumen muchos recursos y, por tanto, son muy costosas en comparación con el descifrado y cifrado de claves simétricas.Encryption and decryption operations that use asymmetric keys consume significant resources, and so become expensive compared with symmetric key encryption and decryption. Se recomienda que los desarrolladores eviten el cifrado y descifrado de claves asimétricas en grandes conjuntos de datos (por ejemplo, conjuntos de datos de usuario almacenados en tablas de base de datos).We suggest that developers avoid asymmetric key encryption and decryption operations on large datasets - for example, user data datasets stored in database tables. En su lugar, se recomienda que los desarrolladores cifren primero los datos con una clave simétrica segura y, después, cifren esa clave simétrica con una clave asimé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.

En función del algoritmo, ENCRYPTBYASYMKEY devuelve NULL si la entrada supera un número determinado de bytes.Depending on the algorithm, ENCRYPTBYASYMKEY returns NULL if the input exceeds a certain number of bytes. Los límites específicos:The specific limits:

  • una clave RSA de 512 bits puede cifrar hasta 53 bytesa 512-bit RSA key can encrypt up to 53 bytes
  • una clave de 1024 bits puede cifrar hasta 117 bytesa 1024-bit key can encrypt up to 117 bytes
  • una clave de 2048 bits puede cifrar hasta 245 bytesa 2048-bit key can encrypt up to 245 bytes

En SQL ServerSQL Server, tanto los certificados como las claves asimétricas sirven de contenedores de claves RSA.In SQL ServerSQL Server, both certificates and asymmetric keys serve as wrappers over RSA keys.

EjemplosExamples

En este ejemplo se cifra el texto almacenado en @cleartext con la clave asimétrica JanainaAsymKey02.This example encrypts the text stored in @cleartext with the asymmetric key JanainaAsymKey02. La instrucción inserta los datos cifrados en la tabla 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  

Vea tambiénSee Also

DECRYPTBYASYMKEY (Transact-SQL) DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL) CREATE ASYMMETRIC KEY (Transact-SQL)
Jerarquía de cifradoEncryption Hierarchy