DECRYPTBYKEY (Transact-SQL)
Bir simetrik anahtar kullanılarak, verilerin şifresini çözer.
DecryptByKey ( { 'ciphertext' | @ciphertext }
[ , add_authenticator, { authenticator | @authenticator } ] )
Bağımsız değişkenler
ciphertext
Is data that has been 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.Must be the same value passed to EncryptByKey when encrypting the data.add_authenticator is int.authenticator
Bir doğrulayıcı oluşturmak hangi veri belirtilir.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
DecryptByKey bir simetrik anahtar kullanır.Bu bir simetrik anahtar zaten veritabanında açık olması gerekir.Olabilir birden çok anahtar açık aynı anda.Anahtar şifreleme metni şifresi çözülüyor hemen önce açmak zorunda değil.
Simetrik şifreleme ve şifre çözme göreli olarak hızlıdır ve büyük miktarda veriyle çalışmak için uygundur.
İzinler
Geçerli oturumda açık için simetrik anahtar gerektirir.Daha fazla bilgi için bkz:SIMETRIK ANAHTAR (Transact-SQL) AÇıN..
Örnekler
C.Bir simetrik anahtar kullanılarak şifresi çözülüyor
Aşağıdaki örnek, bir simetrik anahtar kullanılarak ciphertext ş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 kimlik doğrulaması yapan bir karma değeri kullanılarak şifresi çözülüyor
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