RSACryptoServiceProvider.VerifyHash Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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[])
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
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)
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 null
Empty.
padding
wartość nie jest równa Pkcs1.