Compartir vía


RSACryptoServiceProvider.VerifyHash Método

Definición

Comprueba que una firma digital sea válida.

Sobrecargas

VerifyHash(Byte[], String, Byte[])

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 proporcionado.

VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

Comprueba que una firma digital es válida determinando el valor hash de la firma con el algoritmo hash y el relleno especificados, y comparándolo con el valor hash proporcionado.

VerifyHash(Byte[], String, Byte[])

Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs

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 proporcionado.

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

Valor hash de los datos firmados.

str
String

Identificador del algoritmo hash (OID) usado para crear el valor hash de los datos.

rgbSignature
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 rgbHash es null.

o bien

El parámetro rgbSignature es null.

No se puede adquirir el proveedor de servicios criptográficos (CSP).

o bien

No se puede comprobar la firma.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el VerifyHash 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 SignHash 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.

Los algoritmos hash válidos son SHA1 y MD5. El identificador de algoritmo se puede derivar del nombre hash mediante el MapNameToOID método .

Debido a problemas de colisión con SHA1 y MD5, Microsoft recomienda un modelo de seguridad basado en SHA256 o superior.

Consulte también

Se aplica a

VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs

Comprueba que una firma digital es válida determinando el valor hash de la firma con el algoritmo hash y el relleno especificados, y comparándolo con el valor hash proporcionado.

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

Valor hash de los datos firmados.

signature
Byte[]

Datos de la firma que se van a comprobar.

hashAlgorithm
HashAlgorithmName

Nombre del algoritmo hash que se utiliza para crear el valor hash.

padding
RSASignaturePadding

Relleno.

Devoluciones

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

Excepciones

hashAlgorithm es null o Empty.

hash es null.

O bien

padding es null.

padding no es igual a Pkcs1.

Se aplica a