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.
Значение параметра padding
не равно Pkcs1.