RSACryptoServiceProvider.VerifyHash Methode

Definitie

Controleert of een digitale handtekening geldig is.

Overloads

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

Controleert of een digitale handtekening geldig is door de hash-waarde in de handtekening te bepalen met behulp van de opgegeven openbare sleutel en deze te vergelijken met de opgegeven hashwaarde.

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

Controleert of een digitale handtekening geldig is door de hash-waarde in de handtekening te bepalen met behulp van het opgegeven hash-algoritme en opvulling, en deze te vergelijken met de opgegeven hashwaarde.

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

Bron:
RSACryptoServiceProvider.Unix.cs
Bron:
RSACryptoServiceProvider.Unix.cs
Bron:
RSACryptoServiceProvider.Unix.cs
Bron:
RSACryptoServiceProvider.Unix.cs
Bron:
RSACryptoServiceProvider.Unix.cs

Controleert of een digitale handtekening geldig is door de hash-waarde in de handtekening te bepalen met behulp van de opgegeven openbare sleutel en deze te vergelijken met de opgegeven hashwaarde.

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

Parameters

rgbHash
Byte[]

De hashwaarde van de ondertekende gegevens.

str
String

De hash-algoritme-id (OID) die wordt gebruikt om de hashwaarde van de gegevens te maken.

rgbSignature
Byte[]

De handtekeninggegevens die moeten worden geverifieerd.

Retouren

true indien de handtekening geldig is; anders, false.

Uitzonderingen

De rgbHash parameter is null.

– of –

De rgbSignature parameter is null.

De cryptografische serviceprovider (CSP) kan niet worden verkregen.

– of –

De handtekening kan niet worden geverifieerd.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de VerifyHash methode gebruikt om een handtekening te verifiëren. Dit codevoorbeeld maakt deel uit van een groter voorbeeld dat is opgegeven voor de SignHash methode.

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

Opmerkingen

Met deze methode wordt gecontroleerd of de RSA digitale handtekening wordt geproduceerd door de SignHash methode. De handtekening wordt geverifieerd door de hashwaarde van de handtekening te verkrijgen met behulp van de openbare sleutel waarmee deze is ondertekend en die waarde te vergelijken met de hashwaarde van de opgegeven gegevens.

De geldige hash-algoritmen zijn SHA1 en MD5. De algoritme-id kan worden afgeleid van de hash-naam met behulp van de MapNameToOID methode.

Vanwege conflictproblemen met SHA-1 en MD5 raadt Microsoft een beveiligingsmodel aan op basis van SHA-256 of beter.

Zie ook

Van toepassing op

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

Bron:
RSACryptoServiceProvider.Unix.cs
Bron:
RSACryptoServiceProvider.Unix.cs
Bron:
RSACryptoServiceProvider.Unix.cs
Bron:
RSACryptoServiceProvider.Unix.cs
Bron:
RSACryptoServiceProvider.Unix.cs

Controleert of een digitale handtekening geldig is door de hash-waarde in de handtekening te bepalen met behulp van het opgegeven hash-algoritme en opvulling, en deze te vergelijken met de opgegeven hashwaarde.

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

Parameters

hash
Byte[]

De hashwaarde van de ondertekende gegevens.

signature
Byte[]

De handtekeninggegevens die moeten worden geverifieerd.

hashAlgorithm
HashAlgorithmName

De hash-algoritmenaam die wordt gebruikt om de hashwaarde te maken.

padding
RSASignaturePadding

De opvulling.

Retouren

true indien de handtekening geldig is; anders, false.

Uitzonderingen

hashAlgorithm is null of Empty.

hash is null.

– of –

padding is null.

padding is niet gelijk aan Pkcs1.

Van toepassing op