DECRYPTBYPASSPHRASE (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Эта функция расшифровывает данные, изначально зашифрованные с помощью парольной фразы.
Соглашения о синтаксисе 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)