VERIFYSIGNEDBYASYMKEY (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Verifica se i dati con firma digitale sono stati modificati dopo la firma.

Convenzioni di sintassi Transact-SQL

Sintassi

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

Asym_Key_ID
ID di un certificato con chiave asimmetrica nel database.

clear_text
Dati non crittografati che si desidera verificare.

signature
Firma allegata ai dati firmati. signature è di tipo varbinary.

Tipi restituiti

int

Restituisce 1 se le firme corrispondono. In caso contrario, 0.

Osservazioni:

VerifySignedByAsymKey decrittografa la firma dei dati usando la chiave pubblica della chiave asimmetrica specificata e confronta il valore decrittografato con un nuovo hash MD5 dei dati calcolato. Se i valori corrispondono, viene confermata la validità della firma.

Autorizzazioni

È richiesta l'autorizzazione VIEW DEFINITION per la chiave asimmetrica.

Esempi

R. Verifica dei dati contenenti una firma valida

Nell'esempio seguente viene restituito 1 se i dati selezionati non sono stati modificati dopo la firma tramite la chiave asimmetrica WillisKey74. Viene restituito 0 se invece i dati sono stati alterati.

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. Restituzione di un set di risultati contenente dati con una firma valida

Nell'esempio seguente vengono restituite le righe di SignedData04 contenenti dati che non sono stati modificati dopo la firma con la chiave asimmetrica WillisKey74. Nell'esempio viene chiamata la funzione AsymKey_ID per recuperare l'ID della chiave asimmetrica dal database.

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

Vedi anche

ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Gerarchia di crittografia