Delen via


VERIFIEER ONDERTEKEND door een symsleutel (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Toetst of digitaal ondertekende gegevens zijn gewijzigd sinds het ondertekenen.

Transact-SQL syntaxis-conventies

Syntaxis

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )  

Arguments

Asym_Key_ID
Is de ID van een asymmetrisch sleutelcertificaat in de database.

clear_text
Is duidelijke tekstgegevens die worden geverifieerd.

handtekening
Is de handtekening die aan de ondertekende data is gekoppeld. Signature is varbinary.

Retourtypen

int

Geeft 1 terug wanneer de handtekeningen overeenkomen; anders 0.

Opmerkingen

VerifySignedByAsymKey ontsleutelt de handtekening van de data door gebruik te maken van de publieke sleutel van de gespecificeerde asymmetrische sleutel, en vergelijkt de ontsleutelde waarde met een nieuw berekende MD5-hash van de data. Als de waarden overeenkomen, wordt de handtekening als geldig bevestigd.

Permissions

Vereist VIEW DEFINITION-toestemming voor de asymmetrische sleutel.

Voorbeelden

Eén. Testen op gegevens met een geldige handtekening

Het volgende voorbeeld geeft 1 als de geselecteerde gegevens niet zijn gewijzigd sinds deze met asymmetrische sleutel WillisKey74is ondertekend. Het voorbeeld geeft 0 als de data is gemanipuleerd.

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. Een resultaatset teruggeven die gegevens bevat met een geldige handtekening

Het volgende voorbeeld geeft rijen in SignedData04 die gegevens bevatten die niet zijn gewijzigd sinds het werd ondertekend met een asymmetrische sleutel WillisKey74. Het voorbeeld roept de functie AsymKey_ID aan om de ID van de asymmetrische sleutel uit de database te verkrijgen.

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

Zie ook

ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
ASYMMETRISCHE SLEUTEL (Transact-SQL) maken
ASYMMETRISCHE SLEUTEL (Transact-SQL)
ASYMMETRISCHE SLEUTEL (Transact-SQL)
Versleutelingshiërarchie