Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Managed Instance
Ez a függvény visszafejti a titkosított adatokat. Először egy szimmetrikus kulcsot fejt vissza egy külön aszimmetrikus kulccsal, majd visszafejti a titkosított adatokat az első lépésben kinyert szimmetrikus kulccsal.
Transact-SQL szintaxis konvenciók
Szemantika
DECRYPTBYKEYAUTOASYMKEY ( akey_ID , akey_password
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
[ , { authenticator | @authenticator } ] ] )
Arguments
akey_ID
A szimmetrikus kulcs titkosításához használt aszimmetrikus kulcs azonosítója. akey_IDint adattípussal rendelkezik.
akey_password
Az aszimmetrikus kulcsot védő jelszó.
akey_password akkor lehet NULL érték, ha az adatbázis főkulcsa (DMK) védi az aszimmetrikus titkos kulcsot.
akey_passwordnvarchar adattípussal rendelkezik.
ciphertext
A kulccsal titkosított adatok. a rejtjelszövegvarbináris adattípussal rendelkezik.
@ciphertext
A szimmetrikus kulccsal titkosított adatokat tartalmazó varbináris típusú változó.
add_authenticator
Azt jelzi, hogy az eredeti titkosítási folyamat tartalmazott-e és titkosított-e egy hitelesítőt az egyszerű szöveggel együtt. Az adattitkosítási folyamat során meg kell egyeznie a ENCRYPTBYKEY-nek átadott értékkel. add_authenticator értéke 1, ha a titkosítási folyamat hitelesítőt használt. add_authenticatorint adattípussal rendelkezik.
@add_authenticator
Egy változó, amely azt jelzi, hogy az eredeti titkosítási folyamat tartalmazott-e és titkosított-e egy hitelesítőt az egyszerű szöveggel együtt. Az adattitkosítási folyamat során meg kell egyeznie a ENCRYPTBYKEY-nek átadott értékkel. @add_authenticatorint adattípussal rendelkezik.
Hitelesítő
A hitelesítő létrehozásának alapjaként használt adatok. Meg kell egyeznie a ENCRYPTBYKEY-nek megadott értékkel. az authenticatorsysname adattípussal rendelkezik.
@authenticator
Olyan változó, amely olyan adatokat tartalmaz, amelyekből egy hitelesítő létrehoz. Meg kell egyeznie a ENCRYPTBYKEY-nek megadott értékkel. @authenticatorsysname adattípussal rendelkezik.
@add_authenticator
Egy változó, amely azt jelzi, hogy az eredeti titkosítási folyamat tartalmazott-e és titkosított-e egy hitelesítőt az egyszerű szöveggel együtt. Az adattitkosítási folyamat során meg kell egyeznie a ENCRYPTBYKEY-nek átadott értékkel. @add_authenticatorint adattípussal rendelkezik.
Hitelesítő
A hitelesítő létrehozásának alapjaként használt adatok. Meg kell egyeznie a ENCRYPTBYKEY-nek megadott értékkel. az authenticatorsysname adattípussal rendelkezik.
@authenticator
Olyan változó, amely olyan adatokat tartalmaz, amelyekből egy hitelesítő létrehoz. Meg kell egyeznie a ENCRYPTBYKEY-nek megadott értékkel. @authenticatorsysname adattípussal rendelkezik.
Visszatérési típusok
varbinary, legfeljebb 8000 bájt mérettel.
Megjegyzések
DECRYPTBYKEYAUTOASYMKEYA egyesíti a két és OPEN SYMMETRIC KEYa DECRYPTBYKEY . Egyetlen műveletben először visszafejt egy szimmetrikus kulcsot, majd visszafejti a titkosított rejtjelszöveget ezzel a kulccsal.
Permissions
A szimmetrikus kulccsal és VIEW DEFINITION az aszimmetrikus kulcs engedélyével kell CONTROL rendelkeznie.
Példák
Ez a példa bemutatja, hogyan DECRYPTBYKEYAUTOASYMKEY egyszerűsíthető a visszafejtési kód. Ennek a kódnak olyan AdventureWorks2025 adatbázisban kell futnia, amely még nem rendelkezik DMK-val. Cserélje le <password> erős jelszóra.
--Create the keys and certificate.
USE AdventureWorks2022;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>';
CREATE ASYMMETRIC KEY SSN_AKey
WITH ALGORITHM = RSA_2048;
GO
CREATE SYMMETRIC KEY SSN_Key_02
WITH ALGORITHM = DES
ENCRYPTION BY ASYMMETRIC KEY SSN_AKey;
GO
--
--Add a column of encrypted data.
ALTER TABLE HumanResources.Employee
ADD EncryptedNationalIDNumber2 VARBINARY (128);
OPEN SYMMETRIC KEY SSN_Key_02 DECRYPTION BY ASYMMETRIC KEY SSN_AKey;
UPDATE HumanResources.Employee
SET EncryptedNationalIDNumber2 = EncryptByKey(Key_GUID('SSN_Key_02'), NationalIDNumber);
GO
--Close the key used to encrypt the data.
CLOSE SYMMETRIC KEY SSN_Key_02;
--
--There are two ways to decrypt the stored data.
--
--OPTION ONE, using DecryptByKey()
--1. Open the symmetric key.
--2. Decrypt the data.
--3. Close the symmetric key.
OPEN SYMMETRIC KEY SSN_Key_02 DECRYPTION BY ASYMMETRIC KEY SSN_AKey;
SELECT NationalIDNumber,
EncryptedNationalIDNumber2 AS 'Encrypted ID Number',
CONVERT (NVARCHAR, DecryptByKey(EncryptedNationalIDNumber2)) AS 'Decrypted ID Number'
FROM HumanResources.Employee;
CLOSE SYMMETRIC KEY SSN_Key_02;
--OPTION TWO, using DECRYPTBYKEYAUTOASYMKEY()
SELECT NationalIDNumber,
EncryptedNationalIDNumber2 AS 'Encrypted ID Number',
CONVERT (NVARCHAR, DECRYPTBYKEYAUTOASYMKEY(AsymKey_ID('SSN_AKey'), NULL, EncryptedNationalIDNumber2)) AS 'Decrypted ID Number'
FROM HumanResources.Employee;
GO