RSACryptoServiceProvider.VerifyHash Methode

Definition

Überprüft, ob eine digitale Signatur gültig ist.Verifies that a digital signature is valid.

Ü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.Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the provided hash value.

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.Verifies that a digital signature is valid by determining the hash value in the signature using the specified hashing algorithm and padding, and comparing it to the provided hash value.

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.Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the provided hash value.

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.The hash value of the signed data.

str
String

Die ID des Hashalgorithmus (OID), die zum Erstellen des Hashwerts der Daten verwendet wird.The hash algorithm identifier (OID) used to create the hash value of the data.

rgbSignature
Byte[]

Die zu überprüfenden Signaturdaten.The signature data to be verified.

Gibt zurück

Boolean

true, wenn die Signatur gültig ist, andernfalls false.true if the signature is valid; otherwise, false.

Ausnahmen

Der rgbHash-Parameter ist null.The rgbHash parameter is null.

- oder --or- Der rgbSignature-Parameter ist null.The rgbSignature parameter is null.

Der Kryptografiedienstanbieter (Cryptographic Service Provider, CSP) kann nicht abgerufen werden.The cryptographic service provider (CSP) cannot be acquired.

- oder --or-

Die Signatur kann nicht überprüft werden.The signature cannot be verified.

Beispiele

Im folgenden Beispiel wird gezeigt, wie die-Methode verwendet wird VerifyHash , um eine Signatur zu überprüfen.The following example shows how to use the VerifyHash method to verify a signature. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die-Methode bereitgestellt wird SignHash .This code example is part of a larger example provided for the SignHash method.

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 digitale Signatur, die von der-Methode erzeugt wird SignHash .This method verifies the RSA digital signature produced by the SignHash method. Die Signatur wird überprüft, indem der Hashwert der Signatur mit dem öffentlichen Schlüssel, mit dem Sie signiert wurde, erhalten und dieser Wert mit dem Hashwert der bereitgestellten Daten verglichen wird.The signature is verified by obtaining the hash value from the signature using the public key it was signed with, and comparing that value to the hash value of the provided data.

Gültige Hash Algorithmen sind SHA1 und MD5 .The valid hash algorithms are SHA1 and MD5. Der Algorithmusbezeichner kann mithilfe der-Methode aus dem Hashnamen abgeleitet werden MapNameToOID .The algorithm identifier can be derived from the hash name by using the MapNameToOID method.

Aufgrund von Konnektivitätsproblemen mit SHA1 und MD5 empfiehlt Microsoft ein Sicherheitsmodell, das auf SHA256 oder besser basiert.Due to collision problems with SHA1 and MD5, Microsoft recommends a security model based on SHA256 or better.

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.Verifies that a digital signature is valid by determining the hash value in the signature using the specified hashing algorithm and padding, and comparing it to the provided hash value.

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.The hash value of the signed data.

signature
Byte[]

Die zu überprüfenden Signaturdaten.The signature data to be verified.

hashAlgorithm
HashAlgorithmName

Der Name des Hashalgorithmus, der zum Erstellen des Hashwerts verwendet wird.The hash algorithm name used to create the hash value.

padding
RSASignaturePadding

Der Paddingmodus.The padding.

Gibt zurück

Boolean

true, wenn die Signatur gültig ist, andernfalls false.true if the signature is valid; otherwise, false.

Ausnahmen

hashAlgorithm ist null oder Empty.hashAlgorithm is null or Empty.

hash ist null.hash is null.

- oder --or- padding ist null.padding is null.

padding entspricht nicht Pkcs1.padding does not equal Pkcs1.

Gilt für: