Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: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)
СОЗДАТЬ АСИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
ИЗМЕНИТЬ АСИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
АСИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
Иерархия средств шифрования