RSACryptoServiceProvider.VerifyHash Método

Definición

Comprueba que una firma digital es válida.

Sobrecargas

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

Comprueba que una firma digital es válida al determinar el valor hash de la firma mediante la clave pública proporcionada y compararla con el valor hash proporcionado.

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

Comprueba que una firma digital es válida mediante la determinación del valor hash de la firma mediante el algoritmo hash especificado y el relleno, y comparándolo con el valor hash proporcionado.

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

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

Comprueba que una firma digital es válida al determinar el valor hash de la firma mediante la clave pública proporcionada y compararla 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 de algoritmo hash (OID) usado para crear el valor hash de los datos.

rgbSignature
Byte[]

Datos de firma que se van a comprobar.

Devoluciones

true si la firma es válida; de lo contrario, false.

Excepciones

El rgbHash parámetro es null.

O bien

El rgbSignature parámetro 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 .

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 del algoritmo se puede derivar del nombre hash mediante el MapNameToOID método .

Debido a problemas de colisión con SHA-1 y MD5, Microsoft recomienda un modelo de seguridad basado en SHA-256 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
Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs

Comprueba que una firma digital es válida mediante la determinación del valor hash de la firma mediante el algoritmo hash especificado y el relleno, 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 firma que se van a comprobar.

hashAlgorithm
HashAlgorithmName

Nombre del algoritmo hash usado para crear el valor hash.

padding
RSASignaturePadding

Relleno.

Devoluciones

true si la firma es válida; de lo 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