DECRYPTBYKEYAUTOASYMKEY (Transact-SQL)
Bir asimetrik anahtar kullanılarak otomatik olarak şifresi çözülmüş olan bir simetrik anahtar kullanılarak şifresini çözer.
DecryptByKeyAutoAsymKey ( akey_ID , akey_password
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
[ , { authenticator | @authenticator } ] ] )
Bağımsız değişkenler
akey_ID
Is the ID of the asymmetric key that is used to protect the symmetric key.akey_ID is int.akey_password
Asimetrik anahtar özel anahtarını koruyan paroladır.Can be NULL if the private key is protected by the database master key.akey_password is varchar.'ciphertext'
Is the data that was encrypted with the key.ciphertext is varbinary.@ ciphertext
Türünde bir değişken mi varbinary Ortak anahtar ile şifrelenmiş veriyi içerir.add_authenticator
Düz metin'ile birlikte bir doğrulayıcı şifrelenmiş olup olmadığını gösterir.Veri şifrelerken geçirilen EncryptByKey için aynı değeri olmalıdır.Is 1 if an authenticator was used.add_authenticator is int.@ add_authenticator
Düz metin'ile birlikte bir doğrulayıcı şifrelenmiş olup olmadığını gösterir.Veri şifrelerken geçirilen EncryptByKey için aynı değeri olmalıdır.authenticator
Bir doğrulayıcı oluşturmak içinden veridir.Must match the value that was supplied to EncryptByKey.authenticator is sysname.doğrulayıcı'nın
Bir doğrulayıcı oluşturmak istediğiniz verileri içeren değişken belirtilir.EncryptByKey için sağlanan değerin eşleşmesi gerekir.
Dönüş Türleri
varbinary bir en büyük boyutu çok 8.000 bayt ile.
Remarks
DecryptByKeyAutoAsymKey OPEN SIMETRIK ANAHTAR ve DecryptByKey birleştirir.Tek bir işlemle, bir simetrik anahtarın şifresini çözer ve ciphertext şifresini çözmek için bu anahtar kullanır.
İzinler
Gerektirir GÖRÜNÜM TANIMI simetrik anahtar ve izniDenetim izni asimetrik anahtar.
Örnekler
Aşağıdaki örnek, DecryptByKeyAutoAsymKey bir şifre çözme yapan kodunu basitleştirmek için nasıl kullanılabileceğini gösterir.Bu kod, freshly yüklenmiş bir kopyasını çalıştırmalısınız AdventureWorks veritabanıdır.
--Create the keys and certificate.
USE AdventureWorks;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mzkvdMlk979438teag$$ds987yghn)(*&4fdg^';
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'mzkvdMlk979438teag$$ds987yghn)(*&4fdg^';
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
See Also