Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
Bu işlev şifrelenmiş verilerin şifresini çözer. İlk olarak ayrı bir asimetrik anahtarla simetrik anahtarın şifresini çözer ve ardından şifrelenmiş verilerin şifresini ilk adımda ayıklanan simetrik anahtarla çözer.
Transact-SQL söz dizimi kuralları
Sözdizimi
DECRYPTBYKEYAUTOASYMKEY ( akey_ID , akey_password
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
[ , { authenticator | @authenticator } ] ] )
Arguments
akey_ID
Simetrik anahtarı şifrelemek için kullanılan asimetrik anahtarın kimliği. akey_IDint veri türüne sahiptir.
akey_password
Asimetrik anahtarı koruyan parola.
Veritabanı ana anahtarı (DMK) asimetrik özel anahtarı koruyorsa akey_password bir NULL değere sahip olabilir.
akey_passwordbir nvarchar veri türüne sahiptir.
Ciphertext
Anahtarla şifrelenen veriler. şifre metnininbir varbinary veri türü vardır.
@ciphertext
Simetrik anahtarla şifrelenmiş verileri içeren değişken türünde bir değişken.
add_authenticator
Özgün şifreleme işleminin düz metinle birlikte bir kimlik doğrulayıcının eklenip eklenmediğini ve şifrelenip şifrelenmediğini gösterir. Veri şifreleme işlemi sırasında ENCRYPTBYKEY'e geçirilen değerle eşleşmelidir. şifreleme işlemi bir doğrulayıcı kullandıysa add_authenticator 1 değerine sahiptir. add_authenticatorint veri türüne sahiptir.
@add_authenticator
Özgün şifreleme işleminin düz metinle birlikte bir kimlik doğrulayıcının dahil edilip edilmediğini ve şifrelenip şifrelenmediğini gösteren değişken. Veri şifreleme işlemi sırasında ENCRYPTBYKEY'e geçirilen değerle eşleşmelidir. @add_authenticatorint veri türüne sahiptir.
Doğrulayıcı
Kimlik doğrulayıcının oluşturulması için temel olarak kullanılan veriler. ENCRYPTBYKEY ile sağlanan değerle eşleşmelidir. authenticator bir sysname veri türüne sahiptir.
@authenticator
Kimlik doğrulayıcının oluşturduğu verileri içeren değişken. ENCRYPTBYKEY ile sağlanan değerle eşleşmelidir. @authenticator bir sysname veri türüne sahiptir.
@add_authenticator
Özgün şifreleme işleminin düz metinle birlikte bir kimlik doğrulayıcının dahil edilip edilmediğini ve şifrelenip şifrelenmediğini gösteren değişken. Veri şifreleme işlemi sırasında ENCRYPTBYKEY'e geçirilen değerle eşleşmelidir. @add_authenticatorint veri türüne sahiptir.
Doğrulayıcı
Kimlik doğrulayıcının oluşturulması için temel olarak kullanılan veriler. ENCRYPTBYKEY ile sağlanan değerle eşleşmelidir. authenticator bir sysname veri türüne sahiptir.
@authenticator
Kimlik doğrulayıcının oluşturduğu verileri içeren değişken. ENCRYPTBYKEY ile sağlanan değerle eşleşmelidir. @authenticator bir sysname veri türüne sahiptir.
Dönüş türleri
en büyük boyutu 8.000 bayt olan varbinary.
Açıklamalar
DECRYPTBYKEYAUTOASYMKEYhem OPEN SYMMETRIC KEYhem de DECRYPTBYKEY işlevlerini birleştirir. Tek bir işlemde önce bir simetrik anahtarın şifresini çözer ve ardından şifrelenmiş şifreleme metninin şifresini bu anahtarla çözer.
Permissions
VIEW DEFINITION Simetrik anahtar üzerinde ve asimetrik anahtar CONTROL üzerinde izin gerektirir.
Örnekler
Bu örnekte şifre çözme kodunun nasıl DECRYPTBYKEYAUTOASYMKEY basitleştirebileceği gösterilmektedir. Bu kod, DMK'sı olmayan bir AdventureWorks2025 veritabanında çalıştırılmalıdır. değerini güçlü bir parolayla değiştirin <password> .
--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