Compartir vía


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

Definición

Comprueba si una firma digital es válida determinando el valor hash de la firma usando la clave pública proporcionada y comparándola con el valor hash de los datos proporcionados.

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[]

Los datos que se firmaron.

halg
Object

Nombre del algoritmo hash usado para crear el valor hash de los datos.

signature
Byte[]

Datos de la firma que se van a comprobar.

Devoluciones

true si la firma es válida; en caso contrario, false.

Excepciones

El parámetro halg es null.

El parámetro halg no es un tipo válido.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el VerifyData método para comprobar una firma. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para el 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

Comentarios

Este método comprueba la RSA firma digital generada por el SignData método . La firma se comprueba obteniendo el valor hash de la firma mediante la clave pública con la que se firmó y comparando ese valor con el valor hash de los datos proporcionados.

El halg parámetro puede aceptar , Stringo HashAlgorithm.Type

Se aplica a

Consulte también