Udostępnij za pośrednictwem


VerifySignedByAsymKey (Transact-SQL)

Sprawdzenie, czy danych podpisanych cyfrowo została zmieniona po jego podpisaniu.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )

Argumenty

  • Asym_Key_ID
    Jest to identyfikator kluczasymetrycznegocertyfikat w bazie danych.

  • clear_text
    To jest weryfikowany dane zwykłego tekstu.

  • signature
    Jest podpis, który był dołączony do podpisane dane.signatureis varbinary.

Zwracane typy

int

Zwraca wartość 1, gdy są zgodne z podpisy; 0 inaczej.

Uwagi

VerifySignedByAsymKeyOdszyfrowuje podpis danych za pomocą publicznego klucz określonego kluczasymetrycznego i porównuje wartość odszyfrowane do nowo obliczone wartości mieszania MD5 danych.Jeżeli wartości pasują do siebie, podpis potwierdza się ważność.

Uprawnienia

Wymaga uprawnień VIEW DEFINITION na kluczasymetrycznego.

Przykłady

A.Badania na danych z prawidłowego podpisu

Poniższy przykład zwraca wartość 1, jeśli zaznaczone dane nie zostały zmienione po podpisaniu kluczasymetrycznegoWillisKey74. Przykład zwraca wartość 0, jeśli dane została sfałszowana.

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

B.Zwracanie zestaw wyników zawierający dane z prawidłowego podpisu

Poniższy przykład zwraca wierszy w SignedData04 zawierających dane, która nie została zmieniona po jego podpisaniu kluczasymetrycznego WillisKey74.Przykład wywołuje funkcja AsymKey_ID celu uzyskania Identyfikatora klucz asymetrycznego z bazy danych.

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