Udostępnij za pomocą


HASŁO DESZYFROWANIA (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Funkcja ta odszyfrowuje dane, pierwotnie zaszyfrowane hasłem.

Transact-SQL konwencje składni

Składnia

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

Arguments

hasło
Hasło używane do generowania klucza deszyfrującego.

@passphrase
Zmienna typu char, nchar, nvarchar lub varchar zawierająca hasło używane do wygenerowania klucza deszyfrującego.

"ciphertext"
Ciąg danych zaszyfrowanych za pomocą klucza. Ciphertext ma typ danych varbinary .

@ciphertext
Zmienna typu varbinary zawierająca dane zaszyfrowane za pomocą klucza. Zmienna @ciphertext ma maksymalny rozmiar 8 000 bajtów.

add_authenticator
Wskazuje, czy oryginalny proces szyfrowania zawiera i zaszyfrowany moduł uwierzytelniania wraz z zwykły tekst. add_authenticator ma wartość 1, jeśli proces szyfrowania używał wystawcy uwierzytelnienia. add_authenticator ma typ danych int .

@add_authenticator
Zmienna wskazująca, czy oryginalny proces szyfrowania obejmował i zaszyfrował uwierzytelnianie razem z zwykły tekst. Jest @add_authenticator ma wartość 1, jeśli proces szyfrowania używał uwierzytelniacza. @add_authenticator ma typ danych int .

Wystawca uwierzytelnienia
Dane używane jako podstawa generowania wystawcy uwierzytelnienia. Wystawca authenticator ma typ danych sysname .

@authenticator
Zmienna zawierająca dane służąca jako podstawa generowania uwierzytelniaczy. @authenticator ma typ danych sysname .

Typy zwracane

varbinary o maksymalnym rozmiarze 8000 bajtów.

Uwagi

DECRYPTBYPASSPHRASE nie wymaga żadnych uprawnień do jego realizacji. DECRYPTBYPASSPHRASE zwraca NULL, jeśli otrzyma błędne hasło lub błędne informacje o uwierzytelniaczu.

DECRYPTBYPASSPHRASE używa hasła do wygenerowania klucza deszyfrującego. Ten klucz deszyfrujący nie będzie trwały.

Jeśli uwierzytelniacz był dołączony w momencie szyfrowania tekstu, DECRYPTBYPASSPHRASE musi otrzymać ten sam uwierzytelniający do procesu deszyfrowania. Jeśli wartość uwierzytelniacza podana dla procesu deszyfrowania nie odpowiada wartości uwierzytelniacza pierwotnie użytej do szyfrowania danych, operacja się DECRYPTBYPASSPHRASE nie powiedzie.

Przykłady

Ten przykład odszyfrowuje rekord zaktualizowany w EncryptByPassPhrase.

USE AdventureWorks2022;  
-- Get the passphrase from the user.  
DECLARE @PassphraseEnteredByUser NVARCHAR(128);  
SET @PassphraseEnteredByUser   
= 'A little learning is a dangerous thing!';  
  
-- Decrypt the encrypted record.  
SELECT CardNumber, CardNumber_EncryptedbyPassphrase   
    AS 'Encrypted card number', CONVERT(varchar,  
    DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1   
    , CONVERT(varbinary, CreditCardID)))  
    AS 'Decrypted card number' FROM Sales.CreditCard   
    WHERE CreditCardID = '3681';  
GO  

Zobacz też

Wybieranie algorytmu szyfrowania
ENCRYPTBYPASSWORDa (Transact-SQL)