RSACryptoServiceProvider.VerifyHash Метод

Определение

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

Перегрузки

Имя Описание
VerifyHash(Byte[], String, Byte[])

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

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

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

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

Исходный код:
RSACryptoServiceProvider.Unix.cs
Исходный код:
RSACryptoServiceProvider.Unix.cs
Исходный код:
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 для метода.

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 . Подпись проверяется путем получения хэш-значения из подписи с помощью открытого ключа, с которым он был подписан, и сравнивая это значение с хэш-значением предоставленных данных.

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

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

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

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

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

Исходный код:
RSACryptoServiceProvider.Unix.cs
Исходный код:
RSACryptoServiceProvider.Unix.cs
Исходный код:
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 is null или Empty.

hash равно null.

–или–

padding равно null.

padding не равно Pkcs1.

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