Compartir a través de


ENCRYPTBYASYMKEY (Transact-SQL)

Cifra datos con una clave asimétrica.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • Asym_Key_ID
    Id. de una clave asimétrica en la base de datos. int.

  • cleartext
    Cadena de datos que se cifrará con la clave asimétrica.

  • @plaintext
    Variable de tipo nvarchar, char, varchar, binary, varbinary o nchar que contiene datos que se van a cifrar con la clave asimétrica.

Tipos de valor devueltos

varbinary con un tamaño máximo de 8.000 bytes.

Comentarios

El cifrado/descifrado con una clave asimétrica es muy costoso si lo comparamos con el cifrado/descifrado con una clave simétrica. No es recomendable cifrar con una clave asimétrica grandes conjuntos de datos, como los datos de usuarios almacenados en tablas. En lugar de ello, se deben cifrar los datos con una clave simétrica segura y cifrar la clave simétrica con una clave asimétrica.

EncryptByAsymKey devuelve NULL si la entrada supera un número determinado de bytes, según el algoritmo. Los límites son: una clave RSA de 512 bits puede cifrar hasta 53 bytes, una clave de 1024 bits puede cifrar hasta 117 bytes y una clave de 2048 bits puede cifrar hasta 245 bytes. (Tenga en cuenta que en SQL Server, tanto los certificados como las claves asimétricas son contenedores de claves RSA).

Ejemplos

En el ejemplo siguiente se cifra el texto almacenado en @cleartext con la clave asimétrica JanainaAsymKey02. Los datos cifrados se insertan en la tabla ProtectedData04.

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

Vea también

Referencia

DECRYPTBYASYMKEY (Transact-SQL)

CREATE ASYMMETRIC KEY (Transact-SQL)

Conceptos

Jerarquía de cifrado