Udostępnij za pośrednictwem


RSACryptoServiceProvider.VerifyHash Metoda

Definicja

Sprawdza, czy podpis cyfrowy jest prawidłowy.

Przeciążenia

VerifyHash(Byte[], String, Byte[])

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 podaną wartością skrótu.

VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

Sprawdza, czy podpis cyfrowy jest prawidłowy, określając wartość skrótu w podpisie przy użyciu określonego algorytmu wyznaczania wartości skrótu i wypełniania oraz porównując ją z podaną wartością skrótu.

VerifyHash(Byte[], String, Byte[])

Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs

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 podaną wartością skrótu.

public:
 bool VerifyHash(cli::array <System::Byte> ^ rgbHash, System::String ^ str, cli::array <System::Byte> ^ rgbSignature);
public bool VerifyHash (byte[] rgbHash, string str, byte[] rgbSignature);
override this.VerifyHash : byte[] * string * byte[] -> bool
member this.VerifyHash : byte[] * string * byte[] -> bool
Public Function VerifyHash (rgbHash As Byte(), str As String, rgbSignature As Byte()) As Boolean

Parametry

rgbHash
Byte[]

Wartość skrótu podpisanych danych.

str
String

Identyfikator algorytmu skrótu (OID) użyty do utworzenia wartości skrótu danych.

rgbSignature
Byte[]

Dane podpisu do zweryfikowania.

Zwraca

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

Wyjątki

Parametr rgbHash to null.

-lub-

Parametr rgbSignature to null.

Nie można uzyskać dostawcy usług kryptograficznych (CSP).

-lub-

Nie można zweryfikować podpisu.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą VerifyHash metody zweryfikować podpis. Ten przykład kodu jest częścią większego przykładu podanego 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ę SignHash . 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.

Prawidłowe algorytmy skrótu to SHA1 i MD5. Identyfikator algorytmu może pochodzić z nazwy skrótu MapNameToOID przy użyciu metody .

Ze względu na problemy z kolizją z algorytmem SHA1 i MD5 firma Microsoft zaleca model zabezpieczeń oparty na algorytmie SHA256 lub lepszym.

Zobacz też

Dotyczy

VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs

Sprawdza, czy podpis cyfrowy jest prawidłowy, określając wartość skrótu w podpisie przy użyciu określonego algorytmu wyznaczania wartości skrótu i wypełniania oraz porównując ją z podaną wartością skrótu.

public:
 override bool VerifyHash(cli::array <System::Byte> ^ hash, cli::array <System::Byte> ^ signature, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, System::Security::Cryptography::RSASignaturePadding ^ padding);
public override bool VerifyHash (byte[] hash, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding);
override this.VerifyHash : byte[] * byte[] * System.Security.Cryptography.HashAlgorithmName * System.Security.Cryptography.RSASignaturePadding -> bool
Public Overrides Function VerifyHash (hash As Byte(), signature As Byte(), hashAlgorithm As HashAlgorithmName, padding As RSASignaturePadding) As Boolean

Parametry

hash
Byte[]

Wartość skrótu podpisanych danych.

signature
Byte[]

Dane podpisu do zweryfikowania.

hashAlgorithm
HashAlgorithmName

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

padding
RSASignaturePadding

Dopełnienie.

Zwraca

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

Wyjątki

hashAlgorithm jest lub nullEmpty.

hash to null.

-lub-

padding to null.

padding wartość nie jest równa Pkcs1.

Dotyczy