RSACryptoServiceProvider.VerifyHash Methode

Definition

Überprüft, ob eine digitale Signatur gültig ist.

Überlädt

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

Überprüft, ob eine digitale Signatur gültig ist, indem der Hashwert in der Signatur unter Verwendung des bereitgestellten öffentlichen Schlüssels ermittelt und mit dem bereitgestellten Hashwert verglichen wird.

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

Überprüft, ob eine digitale Signatur gültig ist, indem der Hashwert in der Signatur unter Verwendung des angegebenen Hashalgorithmus und Paddingmodus ermittelt und mit dem angegebenen Hashwert verglichen wird.

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

Überprüft, ob eine digitale Signatur gültig ist, indem der Hashwert in der Signatur unter Verwendung des bereitgestellten öffentlichen Schlüssels ermittelt und mit dem bereitgestellten Hashwert verglichen wird.

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

Parameter

rgbHash
Byte[]

Der Hashwert der signierten Daten.

str
String

Die ID des Hashalgorithmus (OID), die zum Erstellen des Hashwerts der Daten verwendet wird.

rgbSignature
Byte[]

Die zu überprüfenden Signaturdaten.

Gibt zurück

Boolean

true, wenn die Signatur gültig ist, andernfalls false.

Ausnahmen

Der rgbHash-Parameter ist null.

- oder - Der rgbSignature-Parameter ist null.

Der Kryptografiedienstanbieter (Cryptographic Service Provider, CSP) kann nicht abgerufen werden.

- oder -

Die Signatur kann nicht überprüft werden.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie die VerifyHash Methode verwenden, um eine Signatur zu überprüfen. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SignHash Methode bereitgestellt wird.

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

Hinweise

Diese Methode überprüft die RSA von der SignHash Methode erstellte digitale Signatur. Die Signatur wird überprüft, indem Sie den Hashwert aus der Signatur mithilfe des öffentlichen Schlüssels abrufen, mit dem sie signiert wurde, und vergleichen Sie diesen Wert mit dem Hashwert der bereitgestellten Daten.

Die gültigen Hashalgorithmen sind SHA1 und MD5. Der Algorithmusbezeichner kann aus dem Hashnamen mithilfe der MapNameToOID Methode abgeleitet werden.

Aufgrund von Kollisionsproblemen mit SHA1 und MD5 empfiehlt Microsoft ein Sicherheitsmodell basierend auf SHA256 oder besser.

Siehe auch

Gilt für:

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

Überprüft, ob eine digitale Signatur gültig ist, indem der Hashwert in der Signatur unter Verwendung des angegebenen Hashalgorithmus und Paddingmodus ermittelt und mit dem angegebenen Hashwert verglichen wird.

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

Parameter

hash
Byte[]

Der Hashwert der signierten Daten.

signature
Byte[]

Die zu überprüfenden Signaturdaten.

hashAlgorithm
HashAlgorithmName

Der Name des Hashalgorithmus, der zum Erstellen des Hashwerts verwendet wird.

padding
RSASignaturePadding

Der Paddingmodus.

Gibt zurück

Boolean

true, wenn die Signatur gültig ist, andernfalls false.

Ausnahmen

hashAlgorithm ist null oder Empty.

hash ist null.

- oder - padding ist null.

padding entspricht nicht Pkcs1.

Gilt für: