VerifySignedByAsymKey (Transact-SQL)
Sprawdzenie, czy danych podpisanych cyfrowo została zmieniona po jego podpisaniu.
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