DECRYPTBYKEY (Transact-SQL)

Odszyfrowuje dane przy użyciu kluczsymetrycznego.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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