Поделиться через


RSACryptoServiceProvider.VerifyHash Метод

Определение

Проверяет допустимость цифровой подписи.

Перегрузки

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

Проверяет допустимость цифровой подписи путем определения хэш-значения в этой подписи с помощью предоставленного открытого ключа и его сравнения с предоставленным хэш-значением.

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

Проверяет допустимость цифровой подписи путем определения хэш-значения в этой подписи с помощью указанного хэш-алгоритма и заполнения, сравнивая его с предоставленным хэш-значением.

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

Исходный код:
RSACryptoServiceProvider.Unix.cs
Исходный код:
RSACryptoServiceProvider.Unix.cs
Исходный код:
RSACryptoServiceProvider.Unix.cs

Проверяет допустимость цифровой подписи путем определения хэш-значения в этой подписи с помощью предоставленного открытого ключа и его сравнения с предоставленным хэш-значением.

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

Параметры

rgbHash
Byte[]

Хэш-значение подписанных данных.

str
String

Идентификатор хэш-алгоритма (OID), используемый для создания хэш-значения данных.

rgbSignature
Byte[]

Данные подписи, которые требуется поверить.

Возвращаемое значение

Значение true, если подпись является допустимой; в противном случае — значение false.

Исключения

Параметр rgbHash имеет значение null.

-или-

Параметр rgbSignature имеет значение null.

Не удалось получить поставщик служб шифрования (CSP).

-или-

Не удалось проверить подпись.

Примеры

В следующем примере показано, как использовать VerifyHash метод для проверки подписи. Этот пример кода является частью более крупного примера, предоставленного SignHash для метода .

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

Комментарии

Этот метод проверяет цифровую RSA подпись, созданную методом SignHash . Подпись проверяется путем получения хэш-значения из сигнатуры с помощью открытого ключа, с помощью которого она была подписана, и сравнения этого значения с хэш-значением предоставленных данных.

Допустимыми хэш-алгоритмами являются SHA1 и MD5. Идентификатор алгоритма можно получить от хэш-имени с помощью MapNameToOID метода .

Из-за проблем с конфликтами SHA1 и MD5 корпорация Майкрософт рекомендует использовать модель безопасности на основе SHA256 или более поздней версии.

См. также раздел

Применяется к

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

Исходный код:
RSACryptoServiceProvider.Unix.cs
Исходный код:
RSACryptoServiceProvider.Unix.cs
Исходный код:
RSACryptoServiceProvider.Unix.cs

Проверяет допустимость цифровой подписи путем определения хэш-значения в этой подписи с помощью указанного хэш-алгоритма и заполнения, сравнивая его с предоставленным хэш-значением.

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

Параметры

hash
Byte[]

Хэш-значение подписанных данных.

signature
Byte[]

Данные подписи, которые требуется поверить.

hashAlgorithm
HashAlgorithmName

Имя хэш-алгоритма, который используется для создания хэш-значения.

padding
RSASignaturePadding

Заполнение.

Возвращаемое значение

Значение true, если подпись является допустимой; в противном случае — значение false.

Исключения

hashAlgorithm имеет значение null или Empty.

hash имеет значение null.

-или-

padding имеет значение null.

Значение параметра padding не равно Pkcs1.

Применяется к