Udostępnij za pośrednictwem


DECRYPTBYKEY (Transact-SQL)

Odszyfrowuje dane przy użyciu klucza symetrycznego.

Topic link iconKonwencje składni języka Transact-SQL

DecryptByKey ( { 'ciphertext' | @ciphertext } 
    [ , add_authenticator, { authenticator | @authenticator } ] )

Argumenty

  • ciphertext
    Is data that has been encrypted with the key.ciphertext is varbinary.

  • @ szyfrowany
    Jest zmienną typu varbinary zawierający dane, które zaszyfrowanych przy użyciu klucz.

  • add_authenticator
    Wskazuje, czy wystawca uwierzytelnienia został zaszyfrowany wraz z zwykły tekst.Must be the same value passed to EncryptByKey when encrypting the data.add_authenticator is int.

  • authenticator
    Dane, na podstawie których ma zostać wygenerowany wystawca uwierzytelnienia.Musi odpowiadać wartości przekazanej do funkcji EncryptByKey.Parametr authenticator jest typu sysname.

  • @ wystawca uwierzytelnienia
    Czy zmienna, która zawiera dane, z których można wygenerować wystawca uwierzytelnienia.Musi odpowiadać wartości, które zostało dostarczone jako EncryptByKey.

Zwracane typy

varbinary Maksymalny rozmiar 8000 bajtów.

Remarks

Funkcja DecryptByKey używa klucza symetrycznego.Ten klucz symetryczny musi być już otwarty w bazie danych.Jednocześnie może być otwartych wiele kluczy.Klucza nie trzeba otwierać bezpośrednio przed odszyfrowaniem zaszyfrowanego tekstu.

Taka sytuacja może wystąpić po zbiorczej kopię danych do tabela.

Uprawnienia

DBCC DBREINDEX może ponownie utworzyć wszystkie indeksy dla tabela w jedną instrukcję.Aby uzyskać więcej informacji zobaczOPEN SYMMETRIC KEY (Transact-SQL).

Przykłady

A.Jest to łatwiejsze niż kodowania instrukcji DROP indeks wielu i CREATE INDEX.

Ponieważ praca jest wykonywana przez jedną instrukcję, DBCC DBREINDEX jest automatycznie niepodzielny, transakcja jest niepodzielny musi zostać włączone poszczególnych instrukcja DROP indeks i CREATE INDEX.

-- 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.Ponadto DBCC DBREINDEX oferuje więcej optymalizacji niż pojedyncze instrukcje DROP indeks i CREATE INDEX.

W odróżnieniu od INDEXDEFRAG DBCC lub ALTER indeks z opcją REORGANIZACJA DBCC DBREINDEX jest operacją trybu offline.

-- 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