ENCRYPTBYASYMKEY (Transact-SQL)
Cifra datos con una clave asimétrica.
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)