RSACryptoServiceProvider.VerifyHash Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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
true
, wenn die Signatur gültig ist, andernfalls false
.
Ausnahmen
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)
Ü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.
padding
entspricht nicht Pkcs1.