RSACryptoServiceProvider.VerifyHash Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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[])
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 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)
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.
padding is niet gelijk aan Pkcs1.