RSACryptoServiceProvider.VerifyHash Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Verifica se a assinatura digital é válida.
Sobrecargas
VerifyHash(Byte[], String, Byte[]) |
Verifica se uma assinatura digital é válida determinando o valor de hash na assinatura com a chave pública fornecida e comparando-a com valor de hash fornecido. |
VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding) |
Verifica se uma assinatura digital é válida determinando o valor de hash na assinatura usando o preenchimento e algoritmo de hash especificados e comparando-o com o valor de hash fornecido. |
VerifyHash(Byte[], String, Byte[])
Verifica se uma assinatura digital é válida determinando o valor de hash na assinatura com a chave pública fornecida e comparando-a com valor de hash fornecido.
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
Parâmetros
- rgbHash
- Byte[]
O valor de hash dos dados assinados.
- str
- String
O OID (identificador de algoritmo de hash) usado para criar o valor de hash dos dados.
- rgbSignature
- Byte[]
Os dados de assinatura a serem verificados.
Retornos
true
se a assinatura for válida; caso contrário, false
.
Exceções
O CSP (provedor de serviços de criptografia) não pode ser adquirido.
- ou -
A assinatura não pode ser verificada.
Exemplos
O exemplo a seguir mostra como usar o VerifyHash método para verificar uma assinatura. Este exemplo de código faz parte de um exemplo maior fornecido para o SignHash método .
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
Comentários
Esse método verifica a RSA assinatura digital produzida pelo SignHash método . A assinatura é verificada obtendo o valor de hash da assinatura usando a chave pública com a qual foi assinada e comparando esse valor com o valor de hash dos dados fornecidos.
Os algoritmos de hash válidos são SHA1 e MD5. O identificador de algoritmo pode ser derivado do nome do hash usando o MapNameToOID método .
Devido a problemas de colisão com SHA1 e MD5, a Microsoft recomenda um modelo de segurança baseado em SHA256 ou superior.
Confira também
Aplica-se a
VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)
Verifica se uma assinatura digital é válida determinando o valor de hash na assinatura usando o preenchimento e algoritmo de hash especificados e comparando-o com o valor de hash fornecido.
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
Parâmetros
- hash
- Byte[]
O valor de hash dos dados assinados.
- signature
- Byte[]
Os dados de assinatura a serem verificados.
- hashAlgorithm
- HashAlgorithmName
O nome do algoritmo de hash usado para criar o valor de hash.
- padding
- RSASignaturePadding
O preenchimento.
Retornos
true
se a assinatura for válida; caso contrário, false
.
Exceções
hashAlgorithm
é null
ou Empty.
padding
não é igual a Pkcs1.