Поделиться через


ENCRYPTBYASYMKEY (Transact-SQL)

Шифрует данные при помощи асимметричного ключа.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

  • Asym_Key_ID
    Идентификатор асимметричного ключа в базе данных. int.

  • cleartext
    Строка данных, которая будет зашифрована с помощью асимметричного ключа.

  • @plaintext
    Переменная типа nvarchar, char, varchar, binary, varbinary или nchar, содержащая данные, которые будут зашифрованы с помощью асимметричного ключа.

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

varbinary с максимальным размером 8 000 байт.

Замечания

Шифрование/дешифрование с помощью асимметричного ключа является очень дорогостоящим по сравнению с шифрованием/дешифрованием с помощью симметричного ключа. Рекомендуется не шифровать асимметричным ключом большие наборы данных, например таблицы с пользовательскими данными. Вместо этого данные следует шифровать с помощью сильного симметричного ключа, а симметричный ключ шифровать с помощью асимметричного.

Примеры

В следующем примере текст из переменной @cleartext шифруется асимметричным ключом JanainaAsymKey02. Зашифрованные данные помещаются в таблицу ProtectedData04.

INSERT INTO [AdventureWorks2008R2].[Sales].[ProtectedData04] 
    values( N'data encrypted by asymmetric key ''JanainaAsymKey02''',
    EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) )
GO