Поделиться через


VERIFYSIGNEDBYASYMKEY (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Проверяет, изменялись ли данные с цифровой подписью с момента подписи.

Соглашения о синтаксисе Transact-SQL

Синтаксис

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )  

Аргументы

Asym_Key_ID
Идентификатор сертификата с асимметричным ключом в базе данных.

clear_text
Незашифрованные текстовые данные, проверку которых нужно произвести.

signature
Это подпись, которая была прикреплена к подписанным данным. Аргумент signature имеет тип varbinary.

Типы возвращаемых данных

int

Возвращает 1 в случае совпадения подписей и 0 — в противном случае.

Замечания

VerifySignedByAsymKey выполняет расшифровку подписи данных с помощью открытого ключа указанного асимметричного ключа и сравнивает расшифрованное значение с новым вычисленным хэшем MD5 данных. Если значения совпадают, подтверждается допустимость подписи.

Разрешения

Требуется разрешение VIEW DEFINITION на асимметричный ключ.

Примеры

А. Проверка данных с правильной подписью

Следующий пример возвращает 1, если выбранные данные не изменялись с момента их подписи ассиметричным ключом WillisKey74. Пример возвращает 0, если данные были испорчены.

SELECT Data,  
     VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), SignedData,  
     DataSignature ) as IsSignatureValid  
FROM [AdventureWorks2022].[SignedData04]   
WHERE Description = N'data encrypted by asymmetric key ''WillisKey74''';  
GO  
RETURN;  

B. Получение результирующего набора, содержащего данные с правильной подписью

В следующем примере возвращаются строки из SignedData04, содержащие данные, которые не изменялись с момента их подписи асимметричным ключом WillisKey74. Пример вызывает функцию AsymKey_ID для получения идентификатора асимметричного ключа из базы данных.

SELECT Data   
FROM [AdventureWorks2022].[SignedData04]   
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,  
     DataSignature ) = 1  
AND Description = N'data encrypted by asymmetric key ''WillisKey74''';  
GO  

См. также

ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Иерархия средств шифрования