RSACryptoServiceProvider.VerifyHash Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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[])
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
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)
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.
padding no es igual a Pkcs1.