Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Проверяет, изменялись ли данные с цифровой подписью с момента подписи.
Соглашения о синтаксисе 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)
ИЗМЕНИТЬ АСИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Иерархия средств шифрования