Compartilhar via


RSACryptoServiceProvider.VerifyData(Byte[], Object, Byte[]) Método

Definição

Verifica se uma assinatura digital é válida determinando o valor de hash na assinatura com a chave pública fornecida e comparando-a com o valor de hash dos dados fornecidos.

public:
 bool VerifyData(cli::array <System::Byte> ^ buffer, System::Object ^ halg, cli::array <System::Byte> ^ signature);
public bool VerifyData (byte[] buffer, object halg, byte[] signature);
override this.VerifyData : byte[] * obj * byte[] -> bool
member this.VerifyData : byte[] * obj * byte[] -> bool
Public Function VerifyData (buffer As Byte(), halg As Object, signature As Byte()) As Boolean

Parâmetros

buffer
Byte[]

Os dados que receberam um sinal.

halg
Object

O nome do algoritmo de hash usado para criar o valor de hash dos dados.

signature
Byte[]

Os dados de assinatura a serem verificados.

Retornos

true se a assinatura for válida; caso contrário, false.

Exceções

O parâmetro halg é null.

O parâmetro halg não é um tipo válido.

Exemplos

O exemplo a seguir mostra como usar o VerifyData 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 SignData 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.

O halg parâmetro pode aceitar um String, um HashAlgorithmou um Type.

Aplica-se a

Confira também