DecryptByCert (Transact-SQL)
Расшифровывает данные при помощи закрытого ключа сертификата.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
DecryptByCert (
certificate_ID ,
{ 'ciphertext' | @ciphertext }
[ , { 'cert_password' | @cert_password } ]
)
Аргументы
- certificate_ID
Идентификатор сертификата в базе данных. int.
- ciphertext
Строка данных, которая была зашифрована при помощи открытого ключа сертификата.
- @ciphertext
Переменная типа varbinary. Содержит данные, которые были зашифрованы с помощью сертификата.
- cert_password
Пароль, который использовался для шифрования закрытого ключа сертификата. Должен быть в Юникоде.
- @cert_password
Переменная типа nchar или nvarchar, содержащая пароль, который использовался для шифрования закрытого ключа сертификата. Должна быть в Юникоде.
Типы возвращаемых данных
varbinary с максимальным размером 8 000 байт.
Замечания
Эта функция расшифровывает данные при помощи закрытого ключа сертификата. Криптографические преобразования с использованием асимметричных ключей требуют значительных ресурсов. Поэтому функции EncryptByCert и DecryptByCert не подходят для операций шифрования пользовательских данных.
Примеры
В следующем примере производится выборка строк из таблицы [AdventureWorks].[ProtectedData04]
, помеченных как data encrypted by certificate JanainaCert02
. Пример дешифрует зашифрованный текст с помощью закрытого ключа сертификата JanainaCert02
, который сначала дешифруется с помощью пароля сертификата, pGFD4bb925DGvbd2439587y
. Расшифрованные данные преобразуются из типа varbinary в тип nvarchar.
SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks].[ProtectedData04]
WHERE Description
= N'data encrypted by certificate '' JanainaCert02''';
GO
См. также
Справочник
EncryptByCert (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)