Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Эта функция расшифровывает данные, изначально зашифрованные с помощью парольной фразы.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DecryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )
Аргументы
passphrase
Парольная фраза, использовавшаяся для формирования ключа шифрования.
@passphrase
Переменная типа char, nchar, nvarchar или varchar с парольной фразой, использовавшейся для формирования ключа расшифровки.
'ciphertext'
Строка данных, зашифрованная с помощью ключа.
ciphertext имеет тип данных varbinary.
@ciphertext
Переменная типа varbinary, содержащая данные, зашифрованные с помощью ключа. Максимальный размер переменной @ciphertext составляет 8000 байт.
add_authenticator
Указывает, включен ли исходный процесс шифрования и зашифрована ли структура проверки подлинности вместе с данными в виде открытого текста.
add_authenticator имеет значение 1, если в процессе шифрования использовалась структура проверки подлинности.
add_authenticator имеет тип данных int.
@add_authenticator
Переменная, указывающая, включен ли исходный процесс шифрования и зашифрована ли структура проверки подлинности вместе с данными в виде открытого текста. Здесь @add_authenticator имеет значение 1, если в процессе шифрования использовалась структура проверки подлинности.
@add_authenticator имеет тип данных int.
authenticator
Данные, используемые в качестве основы для создания структуры проверки подлинности.
authenticator имеет тип данных sysname.
@authenticator
Переменная, содержащая данные, которые использовались в качестве основы для создания структуры проверки подлинности.
authenticator имеет тип данных sysname.
Типы возвращаемых данных
Переменная типа varbinary с максимальным размером 8000 байт.
Замечания
Для выполнения DECRYPTBYPASSPHRASE разрешения не требуются. Функция DECRYPTBYPASSPHRASE возвращает значение NULL, если получает неправильную парольную фразу или данные структуры проверки подлинности.
Функция DECRYPTBYPASSPHRASE использует парольную фразу для формирования ключа расшифровки. Этот ключ расшифровки не сохраняется.
Если в зашифрованный текст включалась структура проверки подлинности, функция DECRYPTBYPASSPHRASE должна получить эту структуру во время расшифровки. Если значение структуры проверки подлинности, предоставленное для процесса расшифровки, не соответствует значению структуры проверки подлинности, изначально использовавшемуся для шифрования данных, операция DECRYPTBYPASSPHRASE завершится неудачно.
Примеры
В приведенном ниже примере расшифровывается запись, обновленная в функции 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
См. также
Выбор алгоритма шифрования
ENCRYPTBYPASSPHRASE (Transact-SQL)