(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

VERIFYSIGNEDBYASYMKEY (Transact-SQL)

Testet, ob digital signierte Daten seit der Signierung geändert wurden.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )

Asym_Key_ID

Die ID eines asymmetrischen Schlüsselzertifikats in der Datenbank.

clear_text

Die überprüften Klartextdaten.

signature

Die Signatur, die an die signierten Daten angefügt wurde. signature ist vom Datentyp varbinary.

int

Gibt 1 zurück, wenn die Signaturen übereinstimmen, andernfalls 0.

VerifySignedByAsymKey entschlüsselt die Signatur der Daten mit dem öffentlichen Schlüssel des angegebenen asymmetrischen Schlüssels und vergleicht den entschlüsselten Wert mit einem neu berechneten MD5-Hash der Daten. Wenn die Werte zusammenpassen, wird die Signatur als gültig bestätigt.

Erfordert die VIEW DEFINITION-Berechtigung für den asymmetrischen Schlüssel.

A.Testen von Daten mit einer gültigen Signatur

Im folgenden Beispiel wird 1 zurückgegeben, wenn die ausgewählten Daten nach der Signierung mit dem asymmetrischen Schlüssel WillisKey74 nicht geändert wurden. Im Beispiel wird 0 zurückgegeben, wenn die Daten manipuliert wurden.

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

B.Zurückgeben eines Resultsets, das Daten mit einer gültigen Signatur enthält

Im folgenden Beispiel werden Zeilen in SignedData04 mit Daten zurückgegeben, die nach der Signierung mit dem asymmetrischen Schlüssel WillisKey74 nicht geändert wurden. Es wird die AsymKey_ID-Funktion aufgerufen, um die ID des asymmetrischen Schlüssels aus der Datenbank abzurufen.

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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft