Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Эта функция шифрует данные с помощью асимметричного ключа.
Соглашения о синтаксисе Transact-SQL
Синтаксис
EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )
Аргументы
asym_key_ID
Идентификатор асимметричного ключа в базе данных.
asym_key_ID имеет тип данных int.
cleartext
Строка данных, которую функция ENCRYPTBYASYMKEY зашифрует с помощью асимметричного ключа. Аргумент cleartext может иметь тип данных
- binary
- char
- nchar
- nvarchar
- varbinary
or
- varchar
.
@plaintext
Переменная, содержащая значение, которое функция ENCRYPTBYASYMKEY зашифрует с помощью асимметричного ключа.
@plaintext может иметь
- binary
- char
- nchar
- nvarchar
- varbinary
or
- varchar
.
Типы возвращаемых данных
Переменная типа varbinary с максимальным размером 8000 байт.
Замечания
Операции шифрования и расшифровки с асимметричными ключами потребляют много ресурсов и потому становятся более затратными, чем при использовании симметричных ключей. При работе с большими наборами данных (например, с данными пользователей, хранящимися в таблицах базы данных) разработчикам не рекомендуется использовать асимметричный ключ для шифрования или расшифровки. Вместо этого рекомендуется сначала шифровать данные с помощью надежного симметричного ключа, а затем шифровать симметричный ключ с помощью асимметричного.
В зависимости от алгоритма функция ENCRYPTBYASYMKEY возвращает значение NULL, если ввод превышает определенное число байтов. Ограничения:
- С помощью 512-битового ключа RSA можно шифровать до 53 байт.
- С помощью 1024-битового ключа можно шифровать до 117 байт.
- С помощью 2048-битового ключа можно шифровать до 245 байт.
В SQL Server и сертификаты, и асимметричные ключи служат оболочками для ключей RSA.
Примеры
В приведенном ниже примере текст из переменной @cleartext шифруется асимметричным ключом JanainaAsymKey02. Инструкция вставляет зашифрованные данные в таблицу ProtectedData04.
INSERT INTO AdventureWorks2022.Sales.ProtectedData04
VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',
EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );
GO
См. также
РАСШИФРОВКА BYASYMKEY (Transact-SQL)
СОЗДАТЬ АСИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
Иерархия средств шифрования