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.
padding не равно Pkcs1.