Share via


RSACryptoServiceProvider.VerifyHash Yöntem

Tanım

Dijital imzanın geçerli olduğunu doğrular.

Aşırı Yüklemeler

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

Sağlanan ortak anahtarı kullanarak imzadaki karma değeri belirleyip sağlanan karma değerle karşılaştırarak dijital imzanın geçerli olduğunu doğrular.

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

Belirtilen karma algoritmasını ve doldurmayı kullanarak imzadaki karma değeri belirleyip sağlanan karma değerle karşılaştırarak dijital imzanın geçerli olduğunu doğrular.

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

Kaynak:
RSACryptoServiceProvider.Unix.cs
Kaynak:
RSACryptoServiceProvider.Unix.cs
Kaynak:
RSACryptoServiceProvider.Unix.cs

Sağlanan ortak anahtarı kullanarak imzadaki karma değeri belirleyip sağlanan karma değerle karşılaştırarak dijital imzanın geçerli olduğunu doğrular.

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

Parametreler

rgbHash
Byte[]

İmzalanan verilerin karma değeri.

str
String

Verilerin karma değerini oluşturmak için kullanılan karma algoritma tanımlayıcısı (OID).

rgbSignature
Byte[]

Doğrulanacak imza verileri.

Döndürülenler

true imza geçerliyse; aksi takdirde , false.

Özel durumlar

rgbHash parametresidirnull.

-veya-

rgbSignature parametresidirnull.

Şifreleme hizmeti sağlayıcısı (CSP) alınamıyor.

-veya-

İmza doğrulanamıyor.

Örnekler

Aşağıdaki örnekte, bir imzayı doğrulamak için yönteminin VerifyHash nasıl kullanılacağı gösterilmektedir. Bu kod örneği, yöntemi için SignHash sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Bu yöntem, yöntemi tarafından üretilen dijital imzayı SignHash doğrularRSA. İmza, imzalandığı ortak anahtar kullanılarak imzadan karma değer elde edilerek ve bu değer sağlanan verilerin karma değeriyle karşılaştırılarak doğrulanır.

Geçerli karma algoritmaları ve MD5şeklindedirSHA1. Algoritma tanımlayıcısı, yöntemini kullanarak karma adından MapNameToOID türetilebilir.

SHA1 ve MD5 ile ilgili çakışma sorunları nedeniyle Microsoft, SHA256 veya üzerini temel alan bir güvenlik modeli önerir.

Ayrıca bkz.

Şunlara uygulanır

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

Kaynak:
RSACryptoServiceProvider.Unix.cs
Kaynak:
RSACryptoServiceProvider.Unix.cs
Kaynak:
RSACryptoServiceProvider.Unix.cs

Belirtilen karma algoritmasını ve doldurmayı kullanarak imzadaki karma değeri belirleyip sağlanan karma değerle karşılaştırarak dijital imzanın geçerli olduğunu doğrular.

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

Parametreler

hash
Byte[]

İmzalanan verilerin karma değeri.

signature
Byte[]

Doğrulanacak imza verileri.

hashAlgorithm
HashAlgorithmName

Karma değeri oluşturmak için kullanılan karma algoritma adı.

padding
RSASignaturePadding

Doldurma.

Döndürülenler

true imza geçerliyse; aksi takdirde , false.

Özel durumlar

hashAlgorithmveya Emptyşeklindedirnull.

hash, null değeridir.

-veya-

padding, null değeridir.

padding eşit Pkcs1değildir.

Şunlara uygulanır