Udostępnij za pośrednictwem


RSACryptoServiceProvider.VerifyData(Byte[], Object, Byte[]) Metoda

Definicja

Sprawdza, czy podpis cyfrowy jest prawidłowy, określając wartość skrótu w podpisie przy użyciu podanego klucza publicznego i porównując go z wartością skrótu podanych danych.

public:
 bool VerifyData(cli::array <System::Byte> ^ buffer, System::Object ^ halg, cli::array <System::Byte> ^ signature);
public bool VerifyData (byte[] buffer, object halg, byte[] signature);
override this.VerifyData : byte[] * obj * byte[] -> bool
member this.VerifyData : byte[] * obj * byte[] -> bool
Public Function VerifyData (buffer As Byte(), halg As Object, signature As Byte()) As Boolean

Parametry

buffer
Byte[]

Dane, które zostały podpisane.

halg
Object

Nazwa algorytmu skrótu użytego do utworzenia wartości skrótu danych.

signature
Byte[]

Dane podpisu do zweryfikowania.

Zwraca

true jeśli podpis jest prawidłowy; w przeciwnym razie , false.

Wyjątki

Parametr halg ma wartość null.

Parametr halg nie jest prawidłowym typem.

Przykłady

W poniższym przykładzie pokazano, jak użyć VerifyData metody w celu zweryfikowania podpisu. Ten przykład kodu jest częścią większego przykładu udostępnionego SignHash dla metody .

bool VerifyHash( RSAParameters rsaParams, array<Byte>^signedData, array<Byte>^signature )
{
   RSACryptoServiceProvider^ rsaCSP = gcnew RSACryptoServiceProvider;
   SHA1Managed^ hash = gcnew SHA1Managed;
   array<Byte>^hashedData;
   rsaCSP->ImportParameters( rsaParams );
   bool dataOK = rsaCSP->VerifyData(signedData, CryptoConfig::MapNameToOID("SHA1"), signature);
   hashedData = hash->ComputeHash( signedData );
   return rsaCSP->VerifyHash( hashedData, CryptoConfig::MapNameToOID( "SHA1" ), signature );
}
public bool VerifyHash(RSAParameters rsaParams, byte[] signedData, byte[] signature)
{
    RSACryptoServiceProvider rsaCSP = new RSACryptoServiceProvider();
    SHA1Managed hash = new SHA1Managed();
    byte[] hashedData;

    rsaCSP.ImportParameters(rsaParams);
    bool dataOK = rsaCSP.VerifyData(signedData, CryptoConfig.MapNameToOID("SHA1"), signature);
    hashedData = hash.ComputeHash(signedData);
    return rsaCSP.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature);
}
Public Function VerifyHash(ByVal rsaParams As RSAParameters, ByVal signedData() As Byte, ByVal signature() As Byte) As Boolean
    Dim rsaCSP As New RSACryptoServiceProvider()
    Dim hash As New SHA1Managed()
    Dim hashedData() As Byte
    Dim dataOK As Boolean

    rsaCSP.ImportParameters(rsaParams)
    dataOK = rsaCSP.VerifyData(signedData, CryptoConfig.MapNameToOID("SHA1"), signature)
    hashedData = hash.ComputeHash(signedData)
    Return rsaCSP.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature)
End Function 'VerifyHash

Uwagi

Ta metoda weryfikuje RSA podpis cyfrowy wygenerowany przez metodę SignData . Podpis jest weryfikowany przez uzyskanie wartości skrótu z podpisu przy użyciu klucza publicznego, z którego został podpisany, i porównanie tej wartości z wartością skrótu podanych danych.

Parametr halg może akceptować Stringparametr , a HashAlgorithmlub Type.

Dotyczy

Zobacz też