Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza 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)