DECRYPTBYKEY (Transact-SQL)
Odszyfrowuje dane przy użyciu kluczsymetrycznego.
Składnia
DecryptByKey ( { 'ciphertext' | @ciphertext }
[ , add_authenticator, { authenticator | @authenticator } ] )
Argumenty
ciphertext
To dane, które zostały zaszyfrowane przy użyciu klucz.ciphertextis varbinary.@ dekodującym
Jest zmienną typu varbinary zawierający dane, które zostały zaszyfrowane przy użyciu klucz.add_authenticator
Wskazuje, czy wystawca uwierzytelnienia został zaszyfrowany wraz ze zwykły tekst.Muszą być takie same wartości przekazywane do EncryptByKey podczas szyfrowania danych.add_authenticatoris int.authenticator
To dane, z których można generować wystawca uwierzytelnienia.Musi odpowiadać wartości, która została dostarczona do EncryptByKey.authenticatorjest sysname.@wystawca uwierzytelnienia
Jest zmienna, która zawiera dane, z których można generować wystawca uwierzytelnienia.Musi odpowiadać wartości, która została dostarczona do EncryptByKey.
Zwracane typy
varbinaryMaksymalny rozmiar 8000 bajtów.
Uwagi
DecryptByKey używa kluczsymetrycznego.Ten klucz symetryczny musi być otwarte w bazie danych.Może istnieć wiele kluczy otwartych w tym samym czas.Nie trzeba otworzyć klucz bezpośrednio przed odszyfrowywania tekst cipher.
Symetryczne szyfrowanie i odszyfrowywania jest stosunkowo szybkie i nadaje się do pracy z dużymi ilościami danych.
Uprawnienia
Wymaga klucz symetrycznego do został otwarty w bieżącej sesja.Aby uzyskać więcej informacji, zobacz Otwórz klucz SYMETRYCZNY (Transact-SQL).
Przykłady
A.Odszyfrowywanie za pomocą kluczsymetrycznego
Poniższy przykład odszyfrowuje szyfrowany przy użyciu kluczsymetrycznego.
-- 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.Odszyfrowywanie za pomocą klucz symetrycznego i uwierzytelniający mieszania
Poniższy przykład odszyfrowuje danych zaszyfrowanych wraz z wystawca uwierzytelnienia.
-- 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