Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Funkcja ta szyfruje dane kluczem asymetrycznym.
Transact-SQL konwencje składni
Składnia
EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )
Arguments
asym_key_ID
ID asymetrycznego klucza w bazie danych.
asym_key_ID ma typ danych int .
Tekst jawny
Ciąg danych, który ENCRYPTBYASYMKEY będzie szyfrowany kluczem asymetrycznym.
Tekst przejrzysty może mieć
- binary
- Char
- nchar
- nvarchar
- varbinary
lub
- varchar
typ danych.
@plaintext
Zmienna zawierająca wartość, która ENCRYPTBYASYMKEY zaszyfruje się kluczem asymetrycznym.
@plaintext może mieć
- binary
- Char
- nchar
- nvarchar
- varbinary
lub
- varchar
typ danych.
Typy zwracane
varbinary o maksymalnym rozmiarze 8000 bajtów.
Uwagi
Operacje szyfrowania i deszyfrowania z użyciem kluczy asymetrycznych zużywają znaczne zasoby, przez co stają się droższe w porównaniu z szyfrowaniem i deszyfrowaniem kluczem symetrycznym. Sugerujemy, aby deweloperzy unikali operacji szyfrowania i deszyfrowania klucza asymetrycznego na dużych zbiorach danych – na przykład zbiorach danych użytkownika przechowywanych w tabelach bazy danych. Zamiast tego sugerujemy, aby deweloperzy najpierw zaszyfrowali te dane silnym kluczem symetrycznym, a następnie zaszyfrowali ten klucz symetrycznym kluczem asymetrycznym.
W zależności od algorytmu, zwraca NULL, ENCRYPTBYASYMKEY jeśli wejście przekracza określoną liczbę bajtów. Konkretne ograniczenia:
- 512-bitowy klucz RSA może zaszyfrować do 53 bajtów
- Klucz 1024-bitowy może zaszyfrować do 117 bajtów
- Klucz 2048-bitowy może zaszyfrować do 245 bajtów
W SQL Server zarówno certyfikaty, jak i klucze asymetryczne pełnią rolę obudowań nad kluczami RSA.
Przykłady
Ten przykład szyfruje tekst przechowywany w za @cleartext pomocą asymetrycznego klucza JanainaAsymKey02. Oświadczenie wprowadza zaszyfrowane dane do tabeli ProtectedData04 .
INSERT INTO AdventureWorks2022.Sales.ProtectedData04
VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',
EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );
GO
Zobacz też
DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMETRYCZNY KLUCZ (Transact-SQL)
Hierarchia szyfrowania