Freigeben über


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[])

Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs

Ü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

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

Das folgende Beispiel zeigt, wie Sie die VerifyHash -Methode verwenden, um eine Signatur zu überprüfen. Dieses Codebeispiel ist Teil eines größeren Beispiels für die SignHash -Methode.

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

Mit dieser Methode wird die RSA digitale Signatur überprüft, die von der SignHash -Methode erstellt wird. Die Signatur wird überprüft, indem der Hashwert aus der Signatur mithilfe des öffentlichen Schlüssels abgerufen wird, mit dem sie signiert wurde, und dieser Wert mit dem Hashwert der bereitgestellten Daten verglichen wird.

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

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

Weitere Informationen

Gilt für:

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

Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs

Ü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

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: