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

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL DatabaseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database

Эта функция шифрует данные с помощью асимметричного ключа.This function encrypts data with an asymmetric key.

Значок ссылки на статью Синтаксические обозначения в Transact-SQLArticle link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

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

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

АргументыArguments

asym_key_IDasym_key_ID
Идентификатор асимметричного ключа в базе данных.The ID of an asymmetric key in the database. asym_key_ID имеет тип данных int.asym_key_ID has an int data type.

cleartextcleartext
Строка данных, которую функция ENCRYPTBYASYMKEY зашифрует с помощью асимметричного ключа.A string of data that ENCRYPTBYASYMKEY will encrypt with the asymmetric key. Аргумент cleartext может иметь тип данныхcleartext can have a

  • binarybinary
  • charchar
  • ncharnchar
  • nvarcharnvarchar
  • varbinaryvarbinary

илиor

  • varcharvarchar

.data type.

@plaintext@plaintext
Переменная, содержащая значение, которое функция ENCRYPTBYASYMKEY зашифрует с помощью асимметричного ключа.A variable holding a value that ENCRYPTBYASYMKEY will encrypt with the asymmetric key. Аргумент @plaintext может иметь тип:@plaintext can have a

  • binarybinary
  • charchar
  • ncharnchar
  • nvarcharnvarchar
  • varbinaryvarbinary

илиor

  • varcharvarchar

.data type.

Типы возвращаемых данныхReturn Types

Переменная типа varbinary с максимальным размером 8000 байт.varbinary, with a maximum size of 8,000 bytes.

RemarksRemarks

Операции шифрования и расшифровки с асимметричными ключами потребляют много ресурсов и потому становятся более затратными, чем при использовании симметричных ключей.Encryption and decryption operations that use asymmetric keys consume significant resources, and so become expensive compared with symmetric key encryption and decryption. При работе с большими наборами данных (например, с данными пользователей, хранящимися в таблицах базы данных) разработчикам не рекомендуется использовать асимметричный ключ для шифрования или расшифровки.We suggest that developers avoid asymmetric key encryption and decryption operations on large datasets - for example, user data datasets stored in database tables. Вместо этого рекомендуется сначала шифровать данные с помощью надежного симметричного ключа, а затем шифровать симметричный ключ с помощью асимметричного.Instead, we suggest that developers first encrypt that data with a strong symmetric key, and then encrypt that symmetric key with an asymmetric key.

В зависимости от алгоритма функция ENCRYPTBYASYMKEY возвращает значение NULL, если ввод превышает определенное число байтов.Depending on the algorithm, ENCRYPTBYASYMKEY returns NULL if the input exceeds a certain number of bytes. Ограничения:The specific limits:

  • С помощью 512-битового ключа RSA можно шифровать до 53 байт.a 512-bit RSA key can encrypt up to 53 bytes
  • С помощью 1024-битового ключа можно шифровать до 117 байт.a 1024-bit key can encrypt up to 117 bytes
  • С помощью 2048-битового ключа можно шифровать до 245 байт.a 2048-bit key can encrypt up to 245 bytes

В SQL ServerSQL Server и сертификаты, и асимметричные ключи служат оболочками для ключей RSA.In SQL ServerSQL Server, both certificates and asymmetric keys serve as wrappers over RSA keys.

ПримерыExamples

В приведенном ниже примере текст из переменной @cleartext шифруется асимметричным ключом JanainaAsymKey02.This example encrypts the text stored in @cleartext with the asymmetric key JanainaAsymKey02. Инструкция вставляет зашифрованные данные в таблицу 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  

См. такжеSee Also

DECRYPTBYASYMKEY (Transact-SQL) DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL) CREATE ASYMMETRIC KEY (Transact-SQL)
Иерархия средств шифрованияEncryption Hierarchy