decryptbykey (Transact-SQL)
Simetrik anahtarkullanarak verilerin şifresini çözer.
Sözdizimi
DecryptByKey ( { 'ciphertext' | @ciphertext }
[ , add_authenticator, { authenticator | @authenticator } ] )
Bağımsız değişkenler
ciphertext
' % S'anahtar anahtarile şifrelenmiş verilerdir.ciphertextis varbinary.@ haline
Türünde bir değişken olan varbinary ' % s'anahtar anahtarile şifrelenmiş verileri içeren.add_authenticator
Bir doğrulayıcı ile birlikte düz metinşifrelenmiş olup olmadığını gösterir.Aynı değer EncryptByKey için veri şifrelerken geçirilmelidir.add_authenticatoris int.authenticator
Gelen bir doğrulayıcıüretileceği verilerdir.EncryptByKey için sağlanan değerin eşleşmesi gerekir.authenticatorİş sysname.doğrulayıcı@
Gelen bir doğrulayıcıoluşturmak verileri içeren bir değişkendir.EncryptByKey için sağlanan değerin eşleşmesi gerekir.
Dönüş Türleri
varbinaryen çok 8.000 bayt boyutunu ile.
Açıklamalar
DecryptByKey simetrik anahtarkullanır.Bu simetrik anahtar zaten veritabanında açık olması gerekir.Olabilir birden çok anahtar aynı saataçık.anahtar şifre metin şifre çözme hemen önce açmak gerekmez.
Simetrik şifreleme ve şifre çözme göreli olarak hızlıdır ve büyük miktarda verilerle çalışmak için uygundur.
İzinler
Geçerli oturumaçmış olduğunuz için simetrik anahtar gerektirir.Daha fazla bilgi için, bkz. SİMETRİK anahtar (Transact-SQL) açın.
Örnekler
A.Simetrik anahtarkullanılarak şifre çözme
Aşağıdaki örnek simetrik anahtarkullanarak şifreli metine şifresini çözer.
-- First, open the symmetric key with which to decrypt the data.
OPEN SYMMETRIC KEY SSN_Key_01
DECRYPTION BY CERTIFICATE HumanResources037;
GO
-- Now list the original ID, the encrypted ID, and the
-- decrypted ciphertext. If the decryption worked, the original
-- and the decrypted ID will match.
SELECT NationalIDNumber, EncryptedNationalID
AS 'Encrypted ID Number',
CONVERT(nvarchar, DecryptByKey(EncryptedNationalID))
AS 'Decrypted ID Number'
FROM HumanResources.Employee;
GO
B.Simetrik anahtar ve bir kimlik doğrulama karma değeri kullanarak şifrelerini çözme
Aşağıdaki örnek, bir doğrulayıcıile birlikte şifrelenen verilerin şifresini çözer.
-- First, open the symmetric key with which to decrypt the data
OPEN SYMMETRIC KEY CreditCards_Key11
DECRYPTION BY CERTIFICATE Sales09;
GO
-- Now list the original card number, the encrypted card number,
-- and the decrypted ciphertext. If the decryption worked,
-- the original number will match the decrypted number.
SELECT CardNumber, CardNumber_Encrypted
AS 'Encrypted card number', CONVERT(nvarchar,
DecryptByKey(CardNumber_Encrypted, 1 ,
HashBytes('SHA1', CONVERT(varbinary, CreditCardID))))
AS 'Decrypted card number' FROM Sales.CreditCard;
GO